Пожалуйста, объясните мне, когда использовать классы container
и row
. Я не уверен, потому что в документации Bootstrap эта часть не совсем ясна.
Я использую Bootstrap 3.
Ответы:
container
это контейнер row
элементов.
row
элементы - это контейнеры столбцов (в документах это называется сеткой)
Кроме того, container
устанавливает поля содержимого, отвечающие за отзывчивое поведение вашего макета.
Таким образом, container
класс часто используется для создания «упакованного» содержимого на основе рекомендаций по стилю проекта Bootstrap.
Если вы хотите выйти из коробки, создав сетку во всю ширину, вы можете использовать только row
элементы со столбцами внутри (что обычно составляет 12 колец).
container
И row
классы для элементов внутри тела. Итак, базовый макет будет:
<html>
<body>
<div class="container">
<div class="row">
<div class="col-md-xx"></div>
...
</div>
<div class="row">
<div class="col-md-xx"></div>
...
</div>
</div>
</body>
</html>
Для адаптивного макета в штучной упаковке.
Если вы опустите, container
вы получите макет во всю ширину.
Jumbotron - хороший пример такого container
поведения. Если вы поместите элемент Jumbotron в container
элемент, он будет иметь закругленные границы и фиксированную ширину, основанную на ширине реагирования. Если Jumbotron находится вне контейнера, он занимает всю ширину без границ.
row
элементы со столбцами внутри (что обычно составляет 12 колец). Думаю можно использовать container-fluid
и row-fluid
для этого. (Здесь новичок в начальной
Мне было интересно примерно то же самое и понять, что я прошел bootstrap.css
версию 3. Ответ лежит в строке №. 1585–1605. Я отправлю эти строки здесь для лучшего понимания, как показано ниже.
.container
{
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
Код не требует пояснений. Однако, чтобы уточнить это, контейнер будет принимать, 750px
если ширина экрана находится между 768px
и 992px
и так далее, как показывает код. Теперь при обычном разрешении экрана более 1200 контейнер будет занимать 1170px
, но за вычетом заполнения 30 px
( 15px+15px
) остается эффективное пространство 1140px
, которое центрируется на экране, поскольку для полей слева и справа установлено значение auto.
Теперь, в случае class="row"
, ниже код:
.row {
margin-right: -15px;
margin-left: -15px;
}
Таким образом, если строка находится внутри контейнера, она эффективно захватывает отступы в 15 пикселей с каждой стороны от контейнера и использует все пространство. Но если строка класса находится внутри тега body, она будет иметь тенденцию перемещаться из видимой области как в левую, так и в правую часть браузера из-за отрицательных полей.
Надеюсь, это прояснилось.
Контейнер
Контейнер обеспечивает ограничения ширины для адаптивной ширины. Когда изменяющиеся размеры меняются, меняется контейнер. Все строки и столбцы основаны на процентах, поэтому их не нужно изменять. Обратите внимание, что с каждой стороны есть поле в 15 пикселей, отмененное по строкам.
Рядов
Ряды всегда должны быть в емкости.
Строка предоставляет столбцам место для жизни, в идеале имеет столбцы, которые в сумме могут достигать 12. Она также действует как оболочка, поскольку все столбцы перемещаются влево, дополнительные строки не перекрываются, когда плавающие значения становятся странными.
У строк также есть отрицательное поле 15 пикселей с каждой стороны. Элемент div, составляющий строку, обычно ограничивается внутри контейнера, касаясь краев розовой области, но не за ее пределами. Отрицательные поля в 15 пикселей выталкивают строку поверх заполнения контейнеров на 15 пикселей, по существу сводя на нет это. Кроме того, строки гарантируют, что все div внутри него отображаются в отдельной строке, отделенной от предыдущей и следующих строк.
Столбцы
Теперь столбцы имеют отступ 15 пикселей. Это заполнение означает, что столбцы фактически касаются края строки, которая сама касается края контейнера, поскольку строка имеет отрицательное поле, а контейнер имеет положительное заполнение. Но заполнение столбца подталкивает все внутри столбца туда, где оно должно быть, а также обеспечивает промежуток 30 пикселей между столбцами. Никогда не используйте столбец вне строки, это не сработает.
Для получения дополнительной информации предлагаю вам прочитать эту статью . Это действительно ясно и хорошо объясняет, как работает сеточная система Bootstrap.
Класс «контейнер» оборачивает содержимое в центр порта просмотра. Весь контент с тегом in body может быть помещен в результаты, страница указанной ширины отображается в центре страницы.
Класс 'row' используется, когда вам нужно разместить контент в столбцах с в строке, вы можете иметь до 12 столбцов в каждой строке.
В традиционных методах CSS вы, вероятно, использовали бы следующие классы:
wrapper, header, navigator, contents, footer
использование вышеуказанных классов может быть таким, как в этом примере:
<body>
<div class="wrapper">
<div class="header">
</div>
<div class="navigator">
</div>
<div class="content">
</div>
<div class="footer">
</div>
</div>
</body>
В начальной загрузке вы можете использовать, если хотите или если вы привыкли к вышеуказанному шаблону, классы начальной загрузки, подобные этому примеру:
<body>
<div class="container">
<div class="col-md-12">
<h1>Header</h1>
<p>Header contents goes here</p>
</div>
<div class="col-md-12">
<nav role="navigation" class="nav navbar">
<h1>Navigation</h1>
<p>Navigation contents goes here</p>
</nav>
</div>
<div class="col-md-12">
<div class="pagination">
<h1>Page contents</h1>
<p>Webpage contents goes here</p>
</div>
</div>
<div class="col-lg-12">
<h1>Footer contents</h1>
<p>footer contents goes here</p>
</div>
</div>
</body>
Для класса строки вы можете использовать класс строки, если хотите разработать табличный макет для страницы, но если вы хотите отображать данные в формате таблицы, вы должны использовать класс таблицы, но таблица не будет реагировать.
Чтобы создать табличный макет, который отличается от таблиц данных, используйте класс строки, как в этом примере:
<body>
<div class="container">
<div class="row">
<div class="col-sm-4" >.col-sm-4</div>
<div class="col-sm-4" >.col-sm-4</div>
<div class="col-sm-4" >.col-sm-4</div>
</div>
</div>
</body>
Вы должны стараться избегать использования макета на основе таблиц и пытаться использовать адаптивные таблицы, как описано здесь