Я только начал использовать Bootstrap 3. Мне трудно понять, как работает класс строк. Есть ли способ избежать padding-left
и 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>
Ответы:
Во всех сеточных системах между столбцами есть желоба. Система Bootstrap устанавливает отступ в 15 пикселей слева и справа от каждого столбца, чтобы создать этот промежуток.
Проблема в том, что у первого столбца не должно быть половины желоба слева, а у последнего не должно быть половины желоба справа. Вместо того, чтобы использовать какой-то класс
.first
или.last
для этих столбцов, как это делают некоторые системы сеток, они вместо этого устанавливают для.row
класса отрицательные поля, соответствующие заполнению столбцов. Это «стягивает» желоба с первой и последней колонок, в то же время делая их шире..row
ДИВ никогда не должны действительно быть использованы для удержания ничего, кроме столбцов сетки. Если это так, вы увидите, что содержимое смещено относительно любых столбцов, как это видно на вашей скрипке.ОБНОВИТЬ:
Вы изменили свой вопрос после того, как я ответил, поэтому вот ответ на вопрос, который вы сейчас задаете: Добавьте
.container
класс к первому<div>
. См. Рабочий пример .источник
В bootstrap 3.3.7 эта проблема решена путем обертывания .row с помощью .container-fluid.
источник
.container-fluid
также было предложено использовать: stackoverflow.com/a/23616447/5272567absolute
. спасибо за подсказкуСм. Мой ответ на похожее сообщение ниже.
Почему у bootstrap .row левое поле по умолчанию составляет -30 пикселей?
Вы в основном используете «clearfix» вместо «row». Он делает то же самое, что и «row», за исключением отрицательного поля.
источник
Я использовал класс строки внутри класса контейнера, и у меня все еще была проблема. Когда я добавил
margin-left: auto; margin-right: auto;
в.row
класс, он работал нормально.источник
@Michelle M. должна получить полную оценку этого ответа.
Она сказала в одном из комментариев:
Вам нужно будет обновить свой первый
div
элемент следующим образом:Нет необходимости делать это для всех вложенных строк (если они у вас есть).
Просто добавьте
mx-auto
к самым внешнимrow
(или рядам), чтобы избежать вертикальной полосы прокрутки.Не переопределяйте поведение всех строк Bootstrap, добавляя класс «row» для замены полей.
источник
Для будущих разработчиков, устраняющих эту проблему:
Bootstrap устанавливает отступы для столбцов строк, поэтому ни одно содержимое строки не должно появляться за пределами контейнера. Если вы столкнулись с этим и правильно используете сеточную систему начальной загрузки, используя классы col -..., вероятно, у вас есть дополнительный CSS где-то, сбрасывающий отступы в столбцах.
источник