Флекс — это набор свойств контейнера и элементов. Некоторые из этих свойств добавляются к контейнеру, родительскому элементу, известному как «флекс-контейнер» (flex container), другие — к дочерним элементам, известным как «флекс-элементы» (flex items). С помощью Flexbox CSS можно делать:
А так же многое другое. Вот небольшая шпаргалка по Flexbox CSS, которая пригодится тем, кто не знает все свойства на память, ее можно скачать в PDF.
Свойства FLEX контейнера
display
Для того, что бы свойства элементов заработали, нужно добавить display родительскому контейнеру. Это многоцелевое свойство, которое определяет, как элемент должен быть показан в документе. Применяется ко всем элементам в контейнере. Элементы в контейнере контентно-зависимые, ширина контейнера будет по количеству элементов, если она не указана.
НазначениеЗапуск flexbox
Возможные значенияflex | inline-flex
FLEX
.parent-container{
display: flex;
}
INLINE-FLEX
.parent-container{
display: inline-flex;
}
flex-direction
Свойство flex-direction задаёт направление основных осей в контейнере и тем самым определяет положение элементов в контейнере.
НазначениеНаправление укладки элементов по осям
Возможные значенияrow | row-reverse | column | column-reverse
ROW
.parent-container{
display: flex;
flex-direction: row;
}
ROW-REVERSE
.parent-container{
display: flex;
flex-direction: row-reverse;
}
COLUMN
.parent-container{
display: flex;
flex-direction: column;
}
COLUMN-REVERSE
.parent-container{
display: flex;
flex-direction: column-reverse;
}
flex-wrap
Свойство flex-wrap указывает, следует ли элементам располагаться в одну строку или можно занять несколько строк. Если перенос строк допускается, то свойство также позволяет контролировать направление, в котором выкладываются строки.
НазначениеРасположение элементов в одну строку или в несколько
Возможные значенияnowrap | wrap | wrap-reverse
NOWRAP
.parent-container{
display: flex;
flex-wrap: nowrap;
}
WRAP
.parent-container{
display: flex;
flex-wrap: wrap;
}
WRAP-REVERSE
.parent-container{
display: flex;
flex-wrap: wrap-reverse;
}
flex-flow
Свойство flex-flow является сокращённым свойством для отдельных свойств flex-direction и flex-wrap.
НазначениеСокращенная запись для свойств flex-direction и flex-wrap
Возможные значенияrow nowrap | column-reverse | column wrap | row-reverse wrap-reverse
ROW NOWRAP
.parent-container{
display: flex;
flex-flow: row nowrap;
}
COLUMN-REVERSE
.parent-container{
display: flex;
flex-flow: column-reverse;
}
COLUMN WRAP
.parent-container{
display: flex;
flex-flow: column wrap;
}
ROW-REVERSE WRAP-REVERSE
.parent-container{
display: flex;
flex-flow: row-reverse wrap-reverse;
}
justify-content
Свойство justify-content определяет, как браузер распределяет пространство вокруг flex-элементов вдоль главной оси контейнера. Это делается после того, как применяются размеры и автоматические отступы, за исключением ситуации, когда по крайней мере у одного элемента flex-grow больше нуля.
НазначениеГоризонтальное выравнивание flex-элементов
Возможные значенияflex-start | flex-end | center | space-between | space-around | space-evenly
FLEX-START
.parent-container{
display: flex;
justify-content: flex-start;
}
FLEX-END
.parent-container{
display: flex;
justify-content: flex-end;
}
FLEX-CENTER
.parent-container{
display: flex;
justify-content: center;
}
SPACE-BETWEEN
.parent-container{
display: flex;
justify-content: space-between;
}
SPACE-AROUND
.parent-container{
display: flex;
justify-content: space-around;
}
SPACE-EVENLY
.parent-container{
display: flex;
justify-content: space-evenly;
}
align-items
Свойство align-items выравнивает flex-элементы внутри контейнера в перпендикулярном направлении.
НазначениеВыравнивание flex-элементов вдоль центральной оси контейнера (по высоте)
Возможные значенияstretch | flex-start | flex-end | center | baseline
STRETCH
.parent-container{
display: flex;
align-items: stretch;
}
FLEX-START
.parent-container{
display: flex;
align-items: flex-start;
}
FLEX-END
.parent-container{
display: flex;
align-items: flex-end;
}
CENTER
.parent-container{
display: flex;
align-items: center;
}
BASELINE
.parent-container{
display: flex;
align-items: baseline;
}
align-content
Свойство align-content задаёт тип выравнивания строк внутри flex контейнера по поперечной оси при наличии свободного пространства.
НазначениеВыравнивание строк flex-элементов вдоль центральной оси контейнера
Возможные значенияstretch | flex-start | flex-end | center | space-between | space-around | space-evenly
STRETCH
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: stretch;
}
FLEX-START
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: flex-start;
}
FLEX-END
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: flex-end;
}
CENTER
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: center;
}
SPACE-BETWEEN
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: space-between;
}
SPACE-AROUND
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: space-around;
}
SPACE-EVENLY
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: space-evenly;
}
Свойства FLEX элементов (внутри контейнера)
order
Свойство order определяет порядок вывода flex-элементов внутри flex-контейнера. Элементы располагаются согласно значениям свойства order от меньшего к большему. При равных значениях order элементы выводятся в том порядке, в каком они появляются в исходном коде.
НазначениеОпределяет порядок flex-элементов внутри контейнера
Возможные значенияЦелое число
-1
.parent-container{
display: flex;
align-items: flex-start;
}
.element-active{
order: -1;
}
0
.parent-container{
display: flex;
align-items: flex-start;
}
.element-active{
order: 0;
}
1
.parent-container{
display: flex;
align-items: flex-start;
}
.element-active{
order: 1;
}
flex-grow
Свойство flex-grow задает коэффициент роста flex для заданного числа. Отрицательное значение не валидно.
НазначениеУстанавливает фактор растягивания flex-элемента
Возможные значенияЦелое число
0
.parent-container{
display: flex;
}
.element-active{
flex-grow: 0;
}
1
.parent-container{
display: flex;
}
.element-active{
flex-grow: 1;
}
flex-shrink
Свойство flex-shrink задает коэффициент сжатия flex с заданным числом. Отрицательное значение не валидно.
НазначениеУстанавливает фактор сужения flex-элемента
Возможные значенияЦелое число
0
.parent-container{
display: flex;
}
.element{
width: 50%;
}
.element-active{
flex-shrink: 0;
}
1
.parent-container{
display: flex;
}
.element{
width: 50%;
}
.element-active{
flex-shrink: 1;
}
flex-basis
Свойство flex-basis определяет основу flex-элемента, которая является начальным размером элемента. Похоже на свойства width и height, к которым добавляется содержимое элемента.
НазначениеУстанавливает размер flex-элемента
Возможные значенияДлина элемента
20%
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: center;
}
.element-active{
flex-basis: 20%;
}
50%
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: center;
}
.element-active{
flex-basis: 50%;
}
CONTENT
.parent-container{
display: flex;
flex-wrap: wrap;
align-content: center;
}
.element-active{
flex-basis: content;
}
align-self
Свойство align-self выравнивает flex-элементы текущей строки, переписывая значение align-items.
НазначениеПереопределяет выравнивание flex-элемента
Возможные значенияauto | flex-start | flex-end | center | baseline | stretch
FLEX-START
.parent-container{
display: flex;
}
.element-active{
align-self: flex-start;
}
FLEX-END
.parent-container{
display: flex;
}
.element-active{
align-self: flex-end;
}
CENTER
.parent-container{
display: flex;
}
.element-active{
align-self: center;
}
BASELINE
.parent-container{
display: flex;
}
.element-active{
align-self: baseline;
}
STRETCH
.parent-container{
display: flex;
}
.element-active{
align-self: stretch;
}