- Mozilla References > CSS > flex //developer.mozilla.org
CSS справочник //puzzleweb.ru
Шпаргалка по Flexbox CSS //tpverstak.ru/flex-cheatsheet/
PLAYGROUND //developer.mozilla.org/en-US/play
Гибкая раскладка Flexbox
CSS Flexible Box Layout Module //www.w3.org
// Переклад "A Complete Guide to Flexbox" //medium.com
Свойства flex-контейнера
//
- display свойство устанавливает режим компоновки элемента, компоновку flex-контейнера устанавливают два значения:
- flex
- inline-flex
- flex-direction устанавливает направление главной оси и определяет направление flex-элементов размещенных в flex-контейнере:
- row (по умолчанию) — слева направо
- row-reverse — элементы располагаются справа налево
- column аналогично row, только сверху вниз
- column-reverse аналогично row-reverse, но снизу вверх
- flex-wrap управляет размещением flex-элементов в ограниченном пространстве
- nowrap поумолчанию все flex элементы будут выстраиваться в одну линию
- wrap (по умолчанию) элементы будут переноситься в следующие строки ниже или правей
- wrap-reverse элементы будут переноситься в предыдущие строки выше или левей
- flex-flow является сокращением пары свойств flex-direction и flex-wrap (см. выше)
- justify-content определяет выравнивание вдоль главной оси. Оно помогает распределить лишнее свободное пространство, когда, либо все flex элементы в линии имеют фиксированный размер, либо же нет, но уже достигли своего максимального размера. Оно также влияет на выравнивание элементов, когда те переполнят строку
- flex-start — дефолтное состояние, при котором элементы расставляются от начала строки
- flex-end — состояние, в котором элементы размещены с конца строки
- center — элементы центрированы вдоль строки
- space-between — элементы равномерно распределены по строке, первый элемент находится вначале строки, последний в конце
- space-around — элементы равномерно распределены по строке с равным местом вокруг них. Учтите, что визуально пробелы не равномерны, так как все элементы имеют одинаковые пробелы с двух сторон. Первый элемент получит одну единицу свободного места от границы контейнера, но получит две единицы свободного места от следующего элемента, так как у него тоже есть одна единица свободного места с каждой из сторон
- space-evenly — элементы распределены таким образом, что свободное пространство между любыми двумя элементами равномерно, как и место до границы края контейнера
- align-items свойство определяет стандартное поведение того, как flex элементы будут располагаться вдоль поперечной оси на заданной строке. Это своебразная версия justify-content, но только для поперечной оси, которая перпендикулярна главной
- flex-start — всё размещается с начала поперечной оси
- flex-end — все элементы размещаются с конца поперечной оси
- center — элементы центрируются по поперечной оси
- baseline — элементы выравниваются по базовой линии
- stretch — это дефолтное состояние, при котором элементы заполяют контейнер, с учетом min-width и max-width
- align-content свойство выравнивает и распределяет строки контейнера, когда есть свободное пространство в поперечной оси, подобно тому как justify-content, оно выравнивает элементы по главной оси. Свойство не имеет эффекта, если строка flex элементов только одна
- flex-start — строки расположены от начала контейнера
- flex-end — строки расположены от конца контейнера
- center — строки расположены от центра контейнера
- space-between — строки равномерно распределены, первая строка находится вначале контейнера, тогда как последняя находится в конце
- space-around — строки равномерно распределены с равным местом вокруг каждой строки
- stretch — стандартное состояние, при котором строки растягиваются на вся оставшееся место
Свойства flex-элемента
//
- flex-grow положительное значение определяет коэффициент расширения flex-элемента в доступном свободном пространстве и долю свободного пространства при распределение между другими flex-элементами, по умолчанию 0
- flex-shrink положительное значение задает коэффициент наименьшего сжатия flex-элемента, по умолчанию 1
- flex-basis свойство определяет начальный размер элемента, перед тем как оставшееся место будет распределено, по умолчанию auto означает размер по размеру содержимого
- flex: <flex-grow> <flex-shrink> <flex-basis>; является сокращением
- align-self свойство flex-элемента подавляет выравнивание flex-контейнера align-items другим значением:
- auto, flex-start, flex-end, center, baseline, stretch
- order положительное или отрицательное значение свойства у flex-элемента изменяет его положение в группе, которое по умолчанию соответствует порядку определения 1, 2, 3
!!! Начальное значение каждого из подсвойств этого свойства:
flex-grow: 0
flex-shrink: 1
flex-basis: auto
Свойства влияющие на flex-компоновку
Свойства используемые в block-компоновке применимы и для flex-компоновки:
- margin следует учитывать, что это свойство у соседних flex-элементов не коллапсирует (в отличие от block-компоновки)
- row-gap свойство у flex-контейнера устанавливает отступ между строками
- column-gap свойство у flex-контейнера устанавливает отступ между колонками
- gap сокращение пары свойств row-gap и column-gap (см. выше)
Практика
xxx
Среди свойств flexbox...
1 2 3 4 5 6 7 8 |
.box { display: flex; margin: 0 -10px; } .item { flex: 1 1 auto; margin: 0 10px; } |
/
Джерела
- References > CSS > CSS flexible box layout > Mastering wrapping of flex items //developer.mozilla.org