2015-04-29 12 views
14

Używając Bootstrap, gdy umieszczam w rzędzie kilka elementów (np. Przycisków) i zmniejszam okno, elementy zawijają się.(bootstrap) Zachowanie odstępu między elementami podczas ich zawijania?

Ale gdy między oknami jest pewna przestrzeń pozioma, gdy okno jest wystarczająco szerokie, aby pomieścić wszystko obok siebie, w pionie wszystko utknie w miejscu, z zerowymi pikselami pustego odstępu między.

Live example (wąski lub poszerzyć okno wyjściowe, aby zobaczyć efekt)

przykład zrzut ekranu:
1. Wide enough, notice space between buttons
2. Wrapping around, notice NO space between the buttons stacked on top of eachother

Chyba mógł poeksperymentować z jakimś niestandardowym CSS, dodając marginesy pionowe lub inne, ale w celu zachowania zgodności i standardu, jak to możliwe, zastanawiam się, czy istnieje lepszy lub bardziej natywny sposób naprawienia tego w układzie Bootstrap?

+1

duplikat: http://stackoverflow.com/questions/17809671/horizontal- i-pionowa-separacja-of-twitter-bootstraps-guziki http://stackoverflow.com/questions/21981117/twitter-bootstrap-btn-group-vertical-with-margin-in-between-the-buttons http: //stackoverflow.com/questions/18918921/how-to-space-vertically-stacked-b uttons-in-bootstrap-3 – Crock

Odpowiedz

18

Co się dzieje tutaj jest przyciski są wyświetlane w bloku inline i domyślnie takie elementy nie mają spacje lub margines na początku. Możesz użyć poniższej metody, aby tego uniknąć.

To, co zrobiłem, to dodanie klasy do elementu nadrzędnego przycisków i dziedziczenie stylu do klasy "btn".

html

<div class='container'> 
    <div class='row'> 
     <div class='col-xs-12 button-wrapper'> 
      <button class='btn btn-primary'>Lorem ipsum dolor sit amet</button> 
      <button class='btn btn-info'>consectetur adipiscing elit</button> 
      <button class='btn btn-success'>sed do eiusmod tempor incididunt</button> 
     </div> 
    </div> 
</div> 

css

.button-wrapper .btn { 
    margin-bottom:5px; 
} 

Demo

+1

Ma to margines nawet na ekranach, które są wystarczająco szerokie, aby wyświetlić przyciski w jednej linii. Ta odpowiedź brzmi: jak tego uniknąć - http://stackoverflow.com/questions/30887071/margin-top-only-when-the-flex-item-is-wrapped –

3

Demo Użyj marży-bottom css dla przycisku.

.btn{margin-bottom:10px;} 

U można napisać to css z nową nazwą klasy nadrzędnej, aby uniknąć wpływu css na inne strony.

6

Spróbuj tak: Demo

CSS:

@media (max-width: 779px) { 
    .btn{ 
     margin-bottom:10px; 
} 
+0

Działa dla mnie i bez dostosowywania html. – Abela

3

Sprawdź przykładowe poniżej:

Kod:

.btn { 
 
    margin: 10px auto; 
 
}
<div class='container'> 
 
\t <div class='row'> 
 
     
 
     <div class="col-xs-12 col-sm-4"> 
 
      <button class="btn btn-block btn-primary">Lorem ipsum dolor sit amet</button> 
 
     </div> 
 
     
 
     <div class="col-xs-12 col-sm-4"> 
 
      <button class="btn btn-block btn-info">consectetur adipiscing elit</button> 
 
     </div> 
 
     
 
     <div class="col-xs-12 col-sm-4"> 
 
      <button class="btn btn-block btn-success">sed do eiusmod tempor incididunt</button> 
 
     </div>   
 
     
 
\t </div> 
 
</div>

Example

+0

ciekawe, co to jest "auto" w części marginesowej? – RocketNuts

+0

Automatyczne utrzymanie lewego, prawego marginesu domyślnie – CoderBoy

12

Z Bootstrap, zawsze chcą, aby zajęcia dodawania górny i dolny margines tak:

.top5 { margin-top:5px; } 
.top7 { margin-top:7px; } 
.top10 { margin-top:10px; } 
.top15 { margin-top:15px; } 
.top17 { margin-top:17px; } 
.top30 { margin-top:30px; } 

.bottom5 { margin-bottom:5px; } 
.bottom7 { margin-bottom:7px; } 
.bottom10 { margin-bottom:10px; } 
.bottom15 { margin-bottom:15px; } 
.bottom17 { margin-bottom:17px; } 
.bottom30 { margin-bottom:30px; } 

Jest łatwy do zapamiętania i stanowi szybkie rozwiązanie tego problemu. Po prostu dodaj do pliku main.css.

+0

Nie działa dla mnie. Być może te klasy nie działają w połączeniu z niektórymi klasami ładowania początkowego ze względu na ustawienia zmiennoprzecinkowe lub wyświetlania. Ale znalazłem podobną alternatywę, zobacz moje rozwiązanie – Roland

1

Używam tej metody: dodać div z pewnym pionowej przestrzeni:

<div class="vspace1em"></div> 

css:

div.vspace1em { 
     clear: both; 
     height: 1em; 
    } 
+1

To rozwiązanie jest o wiele czystsze niż dodawanie marginesów do elementów bootstrap. – jahackbeth

Powiązane problemy