Aggiungi spazi bianchi verticali usando Twitter Bootstrap?


162

Qual è il modo migliore per aggiungere spazi bianchi verticali usando Bootstrap di Twitter?

Ad esempio, supponiamo che sto creando una landing page e vorrei un po '(100px) di spazi bianchi sopra e sotto un determinato pulsante. Ovviamente, potrei creare una certa classe per quel particolare pulsante. Ma, penso che Bootstrap dovrebbe avere un modo DRY di aggiungere spazi vuoti verticali.

Risposte:


39

In Bootstrap 4 ci sono utility di spaziatura .

Citando la documentazione per la notazione usata :

Le utilità di spaziatura che si applicano a tutti i punti di interruzione, da xsa xl, non contengono abbreviazioni di punto di interruzione. Questo perché tali classi vengono applicate da min-width: 0e verso l'alto e quindi non sono vincolate da una query multimediale. I punti di interruzione rimanenti, tuttavia, includono un'abbreviazione di punto di interruzione.

Le classi sono salvati utilizzando il formato {property}{sides}-{size}per xs e {property}{sides}-{breakpoint}-{size}per sm, md, lg, e xl.

Dove la proprietà è una di:

  • m - per le classi impostate margin
  • p - per le classi impostate padding

Dove lati è uno dei:

  • t- per le classi che impostano margin-topopadding-top
  • b- per le classi che impostano margin-bottomopadding-bottom
  • l- per le classi che impostano margin-leftopadding-left
  • r- per le classi che impostano margin-rightopadding-right
  • x- per le classi che impostano sia *-lefte*-right
  • y- per le classi che impostano sia *-tope*-bottom
  • vuoto - per le classi che impostano un margino paddingsu tutti e 4 i lati dell'elemento

Dove la dimensione è una di:

  • 0 - per le classi che eliminano il margine o il riempimento impostandolo su 0
  • 1- (per impostazione predefinita) per le classi che impostano margino paddingsu$spacer * .25
  • 2- (per impostazione predefinita) per le classi che impostano margino paddingsu$spacer * .5
  • 3- (per impostazione predefinita) per le classi che impostano margino paddingsu$spacer
  • 4- (per impostazione predefinita) per le classi che impostano margino paddingsu$spacer * 1.5
  • 5- (per impostazione predefinita) per le classi che impostano margino paddingsu$spacer * 3

Quindi per avere uno spazio verticale extra sopra e sotto un elemento dovresti usare la my-5classe.


3
Potresti dare un esempio di una stringa di classe valida?
Kolob Canyon,

Bello! Questo è fantastico
Tiki,

51

In v2, non c'è nulla di incorporato per lo spazio verticale, quindi ti consigliamo di seguire una classe personalizzata. Per altezze più piccole, di solito lancio <div class="control-group">un pulsante.


8
oppure <div class = "btn-toolbar">
dyurkavets il

9
Grazie. Ora ho creato alcune classi spacer10, spacer50, ecc. Per questo uso. Vedo che esiste già una richiesta di funzionalità in github per questo: bit.ly/R9oap9
Ryan

1
@Ryan: Bello, non ho visto la richiesta pull. Sono un po 'in conflitto con esso. Bootstrap è quasi interamente presentazionale (e conveniente), ma se strizza gli occhi abbastanza forte da ignorare tutto l'HTML aggiuntivo, puoi ricavarne la semantica. La spaziatura verticale è puramente presentativa, quindi penso che sia meglio eseguirla con una classe / ID personalizzati.
jmdeldin,

2
Questo era per v2, ma sembra che v3 abbia minimizzato la spaziatura .btn-toolbar, quindi dovresti semplicemente aggiungere una nuova classe con i tuoi margini.
jmdeldin,

3
Apparentemente la richiesta di funzionalità github è stata chiusa e la funzione potrebbe arrivare a Bootstrap v4. bit.ly/R9oap9
Ryan

48

Il wrapping funziona ma quando vuoi solo uno spazio, mi piace:

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

16
Aggiungere uno stile in linea quando si lavora con Bootstrap non è generalmente una buona idea. Dovrebbe almeno andare nei CSS.
alexykot,

2
notate che "col-xs-12" è esattamente lo stesso di non avere alcuna classe
Soldeplata Saketos,

34

Mi dispiace scavare una vecchia tomba qui, ma perché non farlo?

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

Aggiungerà uno spazio l'altezza di un normale elemento di forma.

Sembra che circa 1 riga su un modulo sia approssimativamente 50px (47px sul mio elemento che ho appena ispezionato). Questa è una forma orizzontale, con etichetta a sinistra 2col e input a destra 10col. Quindi i tuoi pixel possono variare.

Dato che il mio è fondamentalmente 50px, creerei un distanziatore alto 50px senza margini o imbottitura;

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

1
Questo aggiunge spazio sotto il gruppo ma non sopra
icc97

Ovviamente lo fa, è esattamente quello che ha chiesto, un modo per aggiungere uno spazio vuoto verticale. Se hai bisogno di un gruppo di moduli personalizzato o di una riga o persino di un pulsante, crea la tua classe da aggiungere ad essa, ignorando i margini. Vale a dire: class = "form-group spaced-group" e ".spaced-group {margin-top: 15px! Important; margin-bottom: 15px! Important;} ... .. È solo un comune senso css.
Wade

L'OP ha chiesto specificamente: "un po '(100px) di spazio bianco in bianco sopra e sotto un certo pulsante"
icc97

1
No, quello era un esempio, non la sua domanda. La sua domanda era "Qual è il modo migliore per aggiungere uno spazio vuoto verticale usando Bootstrap di Twitter?" - uno spazio vuoto verticale è diverso da un margine su un elemento specifico. Se lo stesse facendo per tutti i pulsanti, potrebbe cambiare il margine di btn o creare la propria classe come "btn-distanziata" con i suoi margini desiderati. Se vuole solo un modo per aggiungere uno spazio dove vuole, un distanziatore di altezza fissa come ho risposto è ciò di cui ha bisogno. Ha posto una domanda e ne ha dato un esempio. Ho pensato che conoscesse abbastanza CSS per sapere che poteva scavalcare i margini.
Wade,

Dato che ha detto un metodo DRY e un pulsante, allora creerei una classe di pulsanti con i margini che desideravo: btn-spaziati. Se non fosse solo per i pulsanti, allora un margine generale che si applicherebbe a righe, gruppi di moduli, qualunque cosa. Come class = "row space-small" o class = "form-group space-medium" .. Dove small medium e large sono solo varianti dei margini e potrebbero essere applicati praticamente a tutto. - difficile dire quale operazione desidera. Solo per i pulsanti o solo per qualsiasi elemento ..
Wade,

24

So che è vecchio, ma sono venuto qui alla ricerca della stessa cosa, ho scoperto che Bootstrap ha il blocco della guida, molto utile per queste situazioni:

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

21

Per la versione 3 non sembra esserci un modo "bootstrap" per raggiungere questo obiettivo.

A panel, a welle a form-groupforniscono una spaziatura verticale.

Una soluzione di spaziatura verticale specifica più formale è, a quanto pare, sulla tabella di marcia per bootstrap v4

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


5
.form-group sembra la scelta migliore in quanto il CSS è limitato a margin-bottom: 15px. .well e .panel non devono essere usati se si desidera semplicemente aggiungere un po 'di spazio in quanto hanno altri attributi (come sfondo, riempimento, bordo, ecc.)
xaa

9

Ho semplicemente creato una classe div usando varie altezze, ad es

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

Il CSS è:

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

Basta creare una classe di divisione per qualsiasi altezza siano necessari.


8

Il mio trucco. Non elegante, ma funziona:

<p>&nbsp;</p>

2
@JayKilleen +1 Dovresti pubblicarlo come risposta. Forse le persone stanno diventando dipendenti dalle strutture e hanno iniziato a dimenticare le basi.
ADJenks

5

Basta usare <br/>. Mi sono trovato qui a cercare la risposta a questa domanda e poi mi sono sentito un po 'sciocco per non aver pensato di usare una semplice interruzione di riga come suggerito dall'utente JayKilleen in un commento.


Il rovescio della medaglia è che non si ottiene il controllo esatto di 100 px, ma dovrebbe sicuramente funzionare per aggiungere una ragionevole quantità di spazio.
mix3d

1
@ mix3d, sei proprio lì, all'inizio non ho notato che gli importava che fosse esattamente 100px. Ho pensato che volesse solo un "po '". Poteva sicuramente creare la propria classe di aiuto come tutti suggerivano. Ma dal momento che questo post ha tanti anni, ora potrebbe semplicemente passare a bootstrap 4 per una spaziatura precisa, o prendere le classi di supporto da esso.
ADJenks

5

So che questo è vecchio e ci sono già molte buone soluzioni già pubblicate, ma una soluzione semplice che ha funzionato per me è il seguente CSS

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

e quindi creare un div nel tuo HTML

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

4

Ho provato a usare <div class="control-group">e non ha cambiato il mio layout. Non ha aggiunto spazio verticale. La soluzione che ha funzionato per me è stata:

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

Se ciò non ti dà abbastanza spazio verticale, puoi ottenere incrementalmente di più aggiungendo <li>&nbsp;</li>tag nidificati .


Grazie e il tuo suggerimento funzionerebbe con o senza Bootstrap. Ma la domanda era specificamente sull'uso di Twitter Bootstrap per aggiungere lo spazio.
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
In che modo questa è una risposta alla domanda?
Matt S

Aggiunge spaziatura verticale come richiesto dal poster originale, anche gli sviluppatori bootstrap lo stanno approvando nell'ultima versione (4) in stato beta. In realtà è la risposta corretta e se si esegue la spaziatura verticale di Google nel bootstrap, si vedrà che non è stato soddisfatto in precedenza. Si prega di non sottovalutare cose che non sono state testate o su Google.
Den,

Chiaramente non hai letto la domanda. "Vorrei un po '(100px) di spazio bianco in bianco sopra e sotto un determinato pulsante." Un certo pulsante ... un certo pulsante ...
Matt S,

1
Prima ha detto: "Ad esempio, diciamo". Era solo un esempio, non era il problema specifico. Non citare fuori contesto. L'esempio che ho fornito è ampio e tutte le informazioni fornite sono adeguate.
Den,

-3

Non c'è niente di più ASCIUTTO di

.btn {
    margin-bottom:5px;
}

13
Consiglio di non modificare lo stile delle classi css bootstrap di base.
James Palawaga,

1
@JamesPalawaga +1. Ma se questo dovesse essere uno standard generale in tutta la tua applicazione, potresti sovrascrivere lo stile bootstrap, usando MENO e variabili e / o gestendo attentamente i fogli di stile.
Jonathan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.