Właśnie zacząłem używać Bootstrap 3. Trudno mi zrozumieć, jak działa klasa row. Czy jest sposób, aby uniknąć padding-left
i padding-right
?
<div class="row" style="background:#000000">
<div class="col-xs-4 .col-xs-offset-1">
col
</div>
<div class="col-xs-2">
col
</div>
<div class="col-xs-2">
col
</div>
<div class="col-xs-2">
col
</div>
</div>
Odpowiedzi:
We wszystkich systemach kratowych między każdą kolumną znajdują się rynny. System Bootstrap ustawia wypełnienie 15 pikseli po lewej i prawej stronie każdej kolumny, aby utworzyć tę rynnę.
Problem w tym, że pierwsza kolumna nie powinna mieć połowy rynny po lewej stronie, a ostatnia nie powinna mieć połowy rynny po prawej. Zamiast używać jakiegoś rodzaju
.first
lub.last
klasy na tych kolumnach, jak robią to niektóre systemy siatki, zamiast tego ustawiają.row
klasę tak, aby miała ujemne marginesy, które pasują do wypełnienia kolumn. To „wyciąga” rynny z pierwszej i ostatniej kolumny, jednocześnie ją poszerzając.Element
.row
div nigdy nie powinien być używany do przechowywania niczego innego niż kolumny siatki. Jeśli tak, zobaczysz, że zawartość jest przesunięta w stosunku do dowolnych kolumn, jak widać na twoich skrzypcach.AKTUALIZACJA:
Po udzieleniu odpowiedzi zmodyfikowałeś swoje pytanie, więc oto odpowiedź na pytanie, które teraz zadajesz: Dodaj
.container
klasę do pierwszej<div>
. Zobacz przykład roboczy .źródło
W bootstrap 3.3.7 ten problem został rozwiązany poprzez owijanie .row z .container-fluid.
źródło
.container-fluid
Sugerowano również użycie tutaj: stackoverflow.com/a/23616447/5272567absolute
. dzięki za podpowiedźZobacz moją odpowiedź poniżej na podobny post.
Dlaczego plik bootstrap .row ma domyślny lewy margines -30px?
Zasadniczo używasz „clearfix” zamiast „row”. Robi dokładnie to samo, co „wiersz” z wyłączeniem ujemnego marginesu.
źródło
Użyłem klasy row wewnątrz klasy kontenera i nadal miałem problem. Kiedy dodałem
margin-left: auto; margin-right: auto;
do.row
klasy, działało dobrze.źródło
@Michelle M. powinna otrzymać pełne uznanie za tę odpowiedź.
Powiedziała w jednym z komentarzy:
Musisz zaktualizować swój pierwszy
div
element w następujący sposób:Nie musisz tego robić dla wszystkich wierszy zagnieżdżonych (jeśli je masz).
Po prostu dodaj
mx-auto
do najbardziej zewnętrznegorow
(lub wierszy), aby uniknąć pionowego paska przewijania.Nie zastępuj zachowania wszystkich wierszy Bootstrap, dodając klasę „row” w celu zastąpienia marginesów.
źródło
Dla przyszłych programistów debugujących ten problem:
Bootstrap ustawia dopełnienie dla kolumn wierszy, więc żadna zawartość wiersza nie powinna pojawiać się poza kontenerem. Jeśli tego doświadczasz i używasz poprawnie systemu siatki bootstrap, używając klas col -..., prawdopodobnie masz gdzieś dodatkowy CSS resetujący wypełnienie kolumn.
źródło