Layout-контейнер
Контейнер используется для размещения произвольного содержимого с учетом размера браузера.
Центрирование содержимого по размеру браузера
Очень часто содержимое сайта следует ограничить по ширине и отцентрировать. Это делается из-за того, что ширина экрана и браузера достаточно большие и их следует ограничить. Применение контейнера сразу делает блок адаптивным, поскольку его ширина автоматически подстраивается под все виды экранов.
Центрирование содержимого без полей
Центрирование производится с помощью класса layout-center, который ограничивает размер контента 1200px и центрирует блок. Схематично это выглядит так:
<div class="layout-center bg-pink200">содержимое блока</div>
Здесь фон браузера остаётся без изменений, поэтому чаще всего layout-center применяется там, где блок должен иметь тот же фон, что и сам браузер <body>.
Центрирование содержимого c полями
Для управления полями, используется два вложенных блока: первый layout-center-wrap, который растягивается на всю ширину браузера и второй layout-wrap, который ограничивает максимальную ширину и центрирует контент.
содержимое layout-wrap
<div class="layout-center-wrap bg-primary200">
<div class="layout-wrap bg-primary300">
содержимое layout-wrap
</div>
</div>
Такой подход позволяет произвольно менять фон полей и фон блока содержимого, поэтому этот вариант рекомендуемый для использования.
Изменения ширины контента
Для изменения поведением layout-контейнером используются css-переменные:
:root {
/* максимальная ширина контента */
--layout-max-width: 1200px;
/* правый и левый внутренние отступы */
--layout-wrap-padding: 15px;
}
Контент для tablet-экранов
Если размер контейнера нужно сразу ограничить до размера «tablet» (планшеты и телефоны), то используется класс layout-center-wrap-tablet, который имеет максимальную ширину 768px.
содержимое 768px
<div class="layout-center-wrap-tablet bg-pink200">
<div class="layout-wrap bg-pink300">
содержимое 768px
</div>
</div>
Также можно установить размеры произвольного блока с помощью классов ширины:
.w-tablet {width: 768px;}
.w-tablet-max {max-width: 768px;}
.w-tablet-min {min-width: 768px;}
<div class="layout-center w-tablet-max bg-pink300">содержимое 768px</div>
Контейнер с тремя и более блоками
Такой подход используется для случаев, когда нужно вложить блоки друг в друга. Например первый блок — это фоновое изображения, второй — это затеняющий блок с небольшой прозрачностью и третий — уже основное содержимое.
Для блока контейнера используется flex-сетка, которая позволяет растянуть внутренний блок на всю ширину родителя. Это типовое поведение класса flex.
<div class="layout-center-wrap flex bg-no-repeat bg-position-center bg-size-cover" style="min-height: 600px; background-image: url(адрес фонового изображения);">
<div class="w100 bg-op40">
<div class="layout-wrap h100 flex-column flex-ac-center">
<div class="t-pink100 t300 t-center">Lorem ipsum dolor sit amet</div>
<div class="t-pink100 t120 t-center mar30-t">Lorem ipsum dolor sit amet, consectetur adipisicing elit</div>
<div class="t-pink100 t-center mar30-t"><a class="button button-pink" href="#">Lorem</a></div>
</div>
</div>
</div>
- Классы
bg-no-repeat bg-position-center bg-size-coverпозиционируют фоновое изображение. - Класс
bg-op40устанавливает затенение в 40%. - Классы
h100 flex-column flex-ac-centerиспользуется для центрирования контента. Поскольку это «flex-колонки», то используется 100% высота, а не ширина.