Adicionar espaço em branco vertical usando o Twitter Bootstrap?


162

Qual é a melhor maneira de adicionar espaço em branco vertical usando o Bootstrap do Twitter?

Por exemplo, digamos que estou criando uma página de destino e gostaria de um pouco (100px) de espaço em branco acima e abaixo de um determinado botão. Obviamente, eu poderia criar uma certa classe para esse botão específico. Mas, eu acho que o Bootstrap deve ter uma maneira SECA de adicionar espaços em branco verticais.

Respostas:


39

No Bootstrap 4, existem utilitários de espaçamento .

Citando a documentação para notação usada :

Os utilitários de espaçamento que se aplicam a todos os pontos de interrupção, de xspara xl, não possuem nenhuma abreviação de ponto de interrupção. Isso ocorre porque essas classes são aplicadas a partir min-width: 0e para cima e, portanto, não são vinculadas por uma consulta de mídia. Os pontos de interrupção restantes, no entanto, incluem uma abreviação de ponto de interrupção.

As aulas são nomeados usando o formato {property}{sides}-{size}de xs e {property}{sides}-{breakpoint}-{size}para sm, md, lge xl.

Onde a propriedade é uma das seguintes:

  • m - para classes que definem margin
  • p - para classes que definem padding

Onde lados é um dos seguintes:

  • t- para classes que definem margin-topoupadding-top
  • b- para classes que definem margin-bottomoupadding-bottom
  • l- para classes que definem margin-leftoupadding-left
  • r- para classes que definem margin-rightoupadding-right
  • x- para classes que definem ambos *-lefte*-right
  • y- para classes que definem ambos *-tope*-bottom
  • em branco - para classes que definem um marginou paddingnos quatro lados do elemento

Onde o tamanho é um dos seguintes:

  • 0 - para classes que eliminam a margem ou o preenchimento, definindo-o como 0
  • 1- (por padrão) para as classes que definir o marginou paddinga$spacer * .25
  • 2- (por padrão) para as classes que definir o marginou paddinga$spacer * .5
  • 3- (por padrão) para as classes que definir o marginou paddinga$spacer
  • 4- (por padrão) para as classes que definir o marginou paddinga$spacer * 1.5
  • 5- (por padrão) para as classes que definir o marginou paddinga$spacer * 3

Portanto, para ter um espaço vertical extra acima e abaixo de um elemento, você usaria my-5classe.


3
Você poderia dar um exemplo de uma sequência de classes válida?
Kolob Canyon

Agradável! Isso é ótimo.
Tiki

51

Na v2, não há nada embutido em tanto espaço vertical, portanto, você deve ficar com uma classe personalizada. Para alturas menores, geralmente eu apenas aperto <div class="control-group">um botão.


8
ou <div class = "btn-toolbar">
dyurkavets 5/09/12

9
Obrigado. Agora criei algumas classes spacer10, spacer50, etc para esse uso. Vejo que há um pedido de recurso no github para isso já: bit.ly/R9oap9
Ryan

1
@Ryan: Bom, não vi a solicitação de recebimento. Estou um pouco em conflito com isso. O Bootstrap é quase inteiramente de apresentação (e conveniente), mas se você apertar os olhos com força suficiente para ignorar todo o HTML extra, poderá obter semântica dele. O espaçamento vertical é puramente de apresentação, então acho que é melhor fazer com uma classe / ID personalizada.
precisa saber é o seguinte

2
Isso era para a v2, mas parece que a v3 minimizou o espaçamento .btn-toolbar, portanto, você deve adicionar uma nova classe com suas próprias margens.
Jmdeldin

3
Aparentemente, a solicitação do recurso github foi fechada e o recurso pode entrar no Bootstrap v4. bit.ly/R9oap9
Ryan

48

O empacotamento funciona, mas quando você só quer um espaço, eu gosto de:

<div class="col-xs-12" style="height:50px;"></div>

16
Adicionar um estilo embutido ao trabalhar com o Bootstrap geralmente não é uma boa ideia. Deve pelo menos entrar em CSS.
Alexykot #

2
observe que "col-xs-12" é exatamente o mesmo que não ter nenhuma classe
Soldeplata Saketos 15/17

34

Desculpe cavar uma cova velha aqui, mas por que não fazer isso?

<div class="form-group">
    &nbsp;
</div>

Ele adicionará um espaço à altura de um elemento de formulário normal.

Parece que cerca de 1 linha de um formulário tem aproximadamente 50 px (47 px no meu elemento que acabei de inspecionar). Esta é uma forma horizontal, com etiqueta à esquerda 2col e entrada à direita 10col. Portanto, seus pixels podem variar.

Como o meu tem basicamente 50px, eu criaria um espaçador de 50px de altura, sem margens ou preenchimento;

.spacer { margin:0; padding:0; height:50px; }
<div class="spacer"></div>

1
Isso adiciona espaço abaixo do grupo, mas não acima
icc97

Claro que sim, foi exatamente o que ele pediu, uma maneira de adicionar um espaço em branco vertical. Se você precisar de um grupo de formulários ou linha personalizado ou mesmo de um botão, crie sua própria classe para adicionar, substituindo as margens. Ou seja: class = "grupo espaçado do grupo de formulários" e "grupo espaçado {margin-top: 15px! Important; margin-bottom: 15px! Important;}. .. É apenas o senso comum do CSS.
Wade

O OP especificamente perguntou: "um pouco (100px) de espaço em branco acima e abaixo de um determinado botão"
icc97

1
Não, isso foi um exemplo, não a pergunta dele. Sua pergunta foi "Qual a melhor maneira de adicionar espaço em branco vertical usando o Bootstrap do Twitter?" - um espaço em branco vertical é diferente de uma margem em um elemento específico. Se ele estivesse fazendo isso para todos os botões, ele poderia alterar a margem do btn ou criar sua própria classe como "btn-space" com as margens desejadas. Se ele apenas quer uma maneira de adicionar uma lacuna onde quer que ele queira, um espaçador de altura fixa como eu respondi é o que ele precisa. Ele fez uma pergunta e deu um exemplo de outra. Eu presumi que ele conhecia CSS o suficiente para saber que ele poderia substituir as margens.
Wade

Desde que ele disse um método DRY, e button, então eu criaria uma classe de botão com as margens que eu queria: btn-espaçadas. Se não fosse apenas por botões, haveria uma margem geral que se aplicaria a linhas, grupos de formulários, qualquer que seja. Como class = "row space-small" ou class = "form-group space-medium". Onde pequeno médio e grande são apenas variantes das margens e podem ser aplicados a praticamente qualquer coisa. - Difícil dizer qual o op quer. Para botões apenas ou apenas para qualquer elemento ..
Wade

24

Sei que isso é antigo, mas vim aqui procurando a mesma coisa, descobri que o Bootstrap tem o bloco de ajuda, muito útil para estas situações:

<div class="help-block"></div>

21

Para a versão 3, parece não haver uma maneira "de autoinicialização" para conseguir isso perfeitamente.

A panel, a welle a form-grouptodos fornecem algum espaçamento vertical.

Uma solução de espaçamento vertical específico mais formal está, aparentemente, no roteiro do bootstrap v4

https://github.com/twbs/bootstrap/issues/4286#issuecomment-36331550 https://github.com/twbs/bootstrap/issues/13532


5
O .form-group parece a melhor escolha, pois o css é limitado à margem inferior: 15px. .bem e .panel não deve ser usado se você quiser simplesmente adicionar alguns espaçamento como eles têm outros atributos (como fundo, espaçamento, borda, etc)
Xaa

9

Eu apenas criei uma classe div usando várias alturas, ou seja,

<div class="divider-10"></div>

O CSS é:

.divider-10 {
    width:100%; 
    min-height:1px; 
    margin-top:10px; 
    margin-bottom:10px;  
    display:inline-block; 
    position:relative;
}

Basta criar uma classe divisória para o que for necessário.


8

O meu truque. Não é elegante, mas funciona:

<p>&nbsp;</p>

2
@JayKilleen +1 Você deve postar isso como resposta. Talvez as pessoas estejam se tornando dependentes das estruturas e começaram a esquecer o básico.
precisa saber é o seguinte

5

Apenas use <br/>. Eu me encontrei aqui procurando a resposta para essa pergunta e me senti meio bobo por não pensar em usar uma quebra de linha simples, como sugerido pelo usuário JayKilleen em um comentário.


A desvantagem é que você não obtém controle exato de 100px, mas certamente deve funcionar para adicionar uma quantidade razoável de espaço.
precisa saber é

1
@ mix3d, você está aí, eu não percebi a princípio que ele se importava com o fato de ser exatamente 100px. Eu pensei que ele só queria um "pouco". Ele definitivamente poderia fazer sua própria aula de ajudante, como todos sugeriram. Mas como esse post tem muitos anos, ele agora pode simplesmente atualizar para o bootstrap 4 para obter um espaçamento preciso ou tirar as classes auxiliares dele.
precisa saber é o seguinte

5

Sei que isso é antigo e que já existem várias soluções boas, mas uma solução simples que funcionou para mim é o seguinte CSS

<style>
  .divider{
    margin: 0cm 0cm .5cm 0cm;
  }
</style>

e crie uma div no seu html

<div class="divider"></div>

4

Eu tentei usar <div class="control-group">e não mudou meu layout. Não adicionou espaço vertical. A solução que funcionou para mim foi:

<ol style="visibility:hidden;"></ol>

Se isso não fornecer espaço vertical suficiente, você poderá obter mais incrementalmente adicionando <li>&nbsp;</li>tags aninhadas .


Obrigado, e sua sugestão funcionaria com ou sem o Bootstrap. Mas a pergunta era especificamente sobre o uso do Twitter Bootstrap para adicionar o espaçamento.
Jonathan

1
<form>
 <fieldset class="form-group"><input type="text" class="form-control" placeholder="Input"/></fieldset>
 <fieldset class="form-group"><button class="btn btn-primary"/>Button</fieldset>
</form>

http://v4-alpha.getbootstrap.com/components/forms/#form-controls


1
Como isso é uma resposta para a pergunta?
Matt S

Ele adiciona espaçamento vertical conforme solicitado pelo pôster original, e os desenvolvedores de bootstrap agora estão atendendo a ele na versão mais recente (4) no estado beta. Na verdade, é a resposta correta e, se você pesquisar no espaçamento vertical no bootstrap, verá que não foi atendido anteriormente. Por favor, não diminua o voto de coisas que você não testou ou pesquisou no Google.
Den

Você claramente não leu a pergunta. "Gostaria de um pouco (100px) de espaço em branco acima e abaixo de um certo botão." Um certo botão ... um certo botão ...
Matt S

1
Antes disso, ele disse: "Por exemplo, digamos". Foi apenas um exemplo, não foi o problema específico. Não cite fora de contexto. O exemplo que forneci é amplo e todas as informações que forneci são adequadas.
Den

-3

Não há nada mais SECO do que

.btn {
    margin-bottom:5px;
}

13
Eu recomendaria não modificar o estilo das classes base do bootstrap css.
James Palawaga

1
@JamesPalawaga +1. Mas se esse fosse um padrão geral em seu aplicativo, você poderia substituir o estilo da autoinicialização usando LESS e variáveis ​​e / ou folhas de estilo de substituição cuidadosamente gerenciadas.
Jonathan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.