Flexbox, или Flexible Box Layout, представляет собой мощный модуль CSS, который был разработан для упрощения создания гибких и адаптивных макетов. Flexbox упрощает выравнивание и распределение пространства среди элементов контейнера, особенно при создании сложных макетов.
Основные концепции Flexbox
Flexbox состоит из двух основных компонентов: контейнера flex и элементов flex. Контейнер flex — это родительский элемент, содержащий элементы flex. Элементы flex — это дочерние элементы внутри контейнера flex, которые автоматически адаптируются к доступному пространству.
.container {
display: flex;
}
Настройка контейнера Flex
display: flex; Это основное свойство, которое преобразует элемент в контейнер flex.
flex-direction Определяет направление основных осей и расположение элементов flex.
row(по умолчанию): Элементы располагаются по горизонтали слева направо.row-reverse: Элементы располагаются по горизонтали справа налево.column: Элементы располагаются по вертикали сверху вниз.column-reverse: Элементы располагаются по вертикали снизу вверх.
.container {
flex-direction: row;
}
justify-content Управляет горизонтальным выравниванием элементов flex.
flex-start: Элементы выравниваются по началу контейнера.flex-end: Элементы выравниваются по концу контейнера.center: Элементы выравниваются по центру контейнера.space-between: Элементы распределяются с равными промежутками между ними.space-around: Элементы распределяются с равными промежутками вокруг них.
.container {
justify-content: center;
}
align-items Управляет вертикальным выравниванием элементов flex.
stretch(по умолчанию): Элементы растягиваются, чтобы заполнить контейнер.flex-start: Элементы выравниваются по началу контейнера.flex-end: Элементы выравниваются по концу контейнера.center: Элементы выравниваются по центру контейнера.baseline: Элементы выравниваются по базовой линии текста
.container {
align-items: center;
}
flex-wrap Управляет переносом элементов flex на новую строку или колонку.
nowrap(по умолчанию): Все элементы располагаются в одной строке или колонке.wrap: Элементы переносятся на новую строку или колонку при необходимости.wrap-reverse: Элементы переносятся на новую строку или колонку в обратном порядке.
.container {
flex-wrap: wrap;
}
Настройка элементов Flex
flex-growОпределяет, как элемент будет расти относительно других элементов внутри контейнера flex.
.item {
flex-grow: 1;
}
2. flex-shrink Определяет, как элемент будет сжиматься относительно других элементов внутри контейнера flex.
.item {
flex-shrink: 1;
}
3. flex-basis Задает начальный размер элемента перед распределением свободного пространства.
.item {
flex-basis: 200px;
}
4. align-self Управляет вертикальным выравниванием элемента внутри контейнера flex, переопределяя значение align-items.
.item {
align-self: flex-end;
}
Потренироваться с Flexbox можно здесь
