Обзор
Компоненты и параметры для макета вашего проекта Bootstrap, включая контейнеры-оболочки, мощную систему сетки, гибкий медиа-объект и отзывчивые служебные классы.
Контейнеры
Контейнеры являются основным элементом макета в Bootstrap и необходимы при использовании нашей системы сеток по умолчанию . Контейнеры используются для содержания, заполнения и (иногда) центрирования содержимого внутри них. Хотя контейнеры могут быть вложенными, для большинства макетов вложенный контейнер не требуется.
Bootstrap поставляется с тремя разными контейнерами:
.container
, который устанавливаетmax-width
в каждой отзывчивой точке останова.container-fluid
, то естьwidth: 100%
во всех точках останова.container-{breakpoint}
, то естьwidth: 100%
до указанной точки останова
В таблице ниже показано, как каждый контейнер max-width
сравнивается с оригиналом .container
и .container-fluid
по каждой точке останова.
Посмотрите на них в действии и сравните их в нашем примере с сеткой .
Очень маленький <576px |
Маленький ≥576px |
Средний ≥768px |
Большой ≥992px |
Очень большой ≥1200px |
|
---|---|---|---|---|---|
.container |
100% | 540 пикселей | 720 пикселей | 960 пикселей | 1140 пикселей |
.container-sm |
100% | 540 пикселей | 720 пикселей | 960 пикселей | 1140 пикселей |
.container-md |
100% | 100% | 720 пикселей | 960 пикселей | 1140 пикселей |
.container-lg |
100% | 100% | 100% | 960 пикселей | 1140 пикселей |
.container-xl |
100% | 100% | 100% | 100% | 1140 пикселей |
.container-fluid |
100% | 100% | 100% | 100% | 100% |
Все в одном
Наш .container
класс по умолчанию — это отзывчивый контейнер с фиксированной шириной, что означает его max-width
изменения в каждой точке останова.
<div class="container">
<!-- Content here -->
</div>
Жидкость
Используйте .container-fluid
для контейнера полной ширины, охватывающего всю ширину области просмотра.
<div class="container-fluid">
...
</div>
Отзывчивый
Адаптивные контейнеры появились в Bootstrap v4.4. Они позволяют указать класс шириной 100 %, пока не будет достигнута указанная точка останова, после чего мы применяем max-width
s для каждой из более высоких точек останова. Например, .container-sm
имеет ширину 100 % для начала до достижения sm
точки останова, где она будет масштабироваться с помощью md
, lg
и xl
.
<div class="container-sm">100% wide until small breakpoint</div>
<div class="container-md">100% wide until medium breakpoint</div>
<div class="container-lg">100% wide until large breakpoint</div>
<div class="container-xl">100% wide until extra large breakpoint</div>
Отзывчивые точки останова
Поскольку Bootstrap изначально разрабатывался для мобильных устройств, мы используем несколько медиа-запросов для создания разумных точек останова для наших макетов и интерфейсов. Эти контрольные точки в основном основаны на минимальной ширине области просмотра и позволяют нам масштабировать элементы по мере изменения области просмотра.
Bootstrap в основном использует следующие диапазоны медиа-запросов — или точки останова — в наших исходных файлах Sass для нашего макета, системы сетки и компонентов.
// Extra small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
Поскольку мы пишем наш исходный CSS в Sass, все наши медиа-запросы доступны через миксины Sass:
// No media query necessary for xs breakpoint as it's effectively `@media (min-width: 0) { ... }`
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }
// Example: Hide starting at `min-width: 0`, and then show at the `sm` breakpoint
.custom-class {
display: none;
}
@include media-breakpoint-up(sm) {
.custom-class {
display: block;
}
}
Мы иногда используем медиа-запросы, которые идут в другом направлении (данный размер экрана или меньше ):
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, less than 768px)
@media (max-width: 767.98px) { ... }
// Medium devices (tablets, less than 992px)
@media (max-width: 991.98px) { ... }
// Large devices (desktops, less than 1200px)
@media (max-width: 1199.98px) { ... }
// Extra large devices (large desktops)
// No media query since the extra-large breakpoint has no upper bound on its width
min-
и max-
префиксы и области просмотра с дробной шириной (что может произойти при определенных условиях, например, на устройствах с высоким разрешением), используя значения с более высокой точностью для этих сравнений. .
Опять же, эти медиа-запросы также доступны через миксины Sass:
@include media-breakpoint-down(xs) { ... }
@include media-breakpoint-down(sm) { ... }
@include media-breakpoint-down(md) { ... }
@include media-breakpoint-down(lg) { ... }
// No media query necessary for xl breakpoint as it has no upper bound on its width
// Example: Style from medium breakpoint and down
@include media-breakpoint-down(md) {
.custom-class {
display: block;
}
}
Существуют также медиа-запросы и примеси для таргетинга на один сегмент размеров экрана с использованием минимальной и максимальной ширины точки останова.
// Extra small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) { ... }
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) and (max-width: 767.98px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) and (max-width: 991.98px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) and (max-width: 1199.98px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
Эти медиа-запросы также доступны через миксины Sass:
@include media-breakpoint-only(xs) { ... }
@include media-breakpoint-only(sm) { ... }
@include media-breakpoint-only(md) { ... }
@include media-breakpoint-only(lg) { ... }
@include media-breakpoint-only(xl) { ... }
Точно так же медиа-запросы могут охватывать несколько точек останова по ширине:
// Example
// Apply styles starting from medium devices and up to extra large devices
@media (min-width: 768px) and (max-width: 1199.98px) { ... }
Миксин Sass для таргетинга на тот же диапазон размеров экрана будет выглядеть так:
@include media-breakpoint-between(md, xl) { ... }
Z-индекс
Несколько компонентов Bootstrap используют z-index
свойство CSS, которое помогает управлять макетом, предоставляя третью ось для упорядочения содержимого. Мы используем шкалу z-индекса по умолчанию в Bootstrap, которая была разработана для правильной навигации по слоям, всплывающих подсказок и всплывающих окон, модальных окон и многого другого.
Эти более высокие значения начинаются с произвольного числа, высокого и достаточно определенного, чтобы в идеале избежать конфликтов. Нам нужен их стандартный набор для наших многоуровневых компонентов — всплывающие подсказки, всплывающие окна, панели навигации, раскрывающиеся списки, модальные окна — чтобы мы могли быть достаточно последовательными в поведении. Нет причин, по которым мы не могли бы использовать 100
+ или 500
+.
Мы не поощряем настройку этих отдельных значений; если вы измените один, вам, вероятно, придется изменить их все.
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
$zindex-tooltip: 1070 !default;
Для обработки перекрывающихся границ внутри компонентов (например, кнопок и элементов ввода в группах ввода) мы используем младшие однозначные z-index
значения 1
, 2
и 3
для состояний по умолчанию, наведения и активности. При наведении/фокусе/активности мы выводим конкретный элемент на передний план с более высоким z-index
значением, чтобы показать его границу над элементами родственного элемента.