Свойство align-content
Лекция в HTML Academy про align-content
Свойство justify-content
управляет распределением флекс-элементов вдоль главной оси,
а align-content
— выравниванием рядов флекс-элементов вдоль поперечной оси. Оба
свойства имеют схожие значения:
- 1
flex-start
- 2
flex-end
- 3
center
- 4
space-between
- 5
stretch
- доступно только дляalign-content
и является значением по умолчанию.
Свойство align-content
переопределяет значение align-items
, которое управляет
выравниванием отдельных флекс-элементов вдоль поперечной оси. Это происходит как для
одного ряда флекс-элементов, так и для нескольких рядов.
Однако есть один нюанс: align-content
перестаёт работать, если для флекс-контейнера
установлено свойство flex-wrap: nowrap
. Это происходит потому, что в таком случае
высота строки равна высоте флекс-контейнера, и на поперечной оси не остаётся
свободного пространства.
В результате align-content
не может применяться. Вместо этого будут работать
свойства align-items
и align-self
, если размеры флекс-элементов позволяют, и мы увидим результат их выравнивания.
Свойство align-content: stretch и align-items
Когда одновременно задаются свойства align-items
и align-content
, align-items
не отключается полностью, а может влиять на отображение флекс-элементов внутри рядов.
Это особенно заметно, когда для align-content
используется значение по умолчанию —
stretch
. В этом случае ряды флекс-элементов растягиваются, занимая всё доступное
пространство поперечной оси, а оставшееся свободное место между рядами делится поровну.
Поведение строк при align-content: stretch
зависит от значения align-items
:
1 Если
align-items
имеет значениеstretch
, элементы внутри строк растягиваются на всю высоту своей строки.2 Если значение
align-items
отлично отstretch
, элементы внутри строк сжимаются под своё содержимое и выравниваются в строках в соответствии с заданным значениемalign-items
(например,flex-start
,center
,flex-end
и т.д.).
Таким образом, align-items
продолжает влиять на выравнивание элементов внутри строк,
даже если align-content
установлено на stretch
.
Свойство order, порядковый номер flex-элемента
Еще одно свойство - это order
, которое определяет порядковый номер флекс-элемента.
.flex-element {
// этот элемент станет отображаться первым в контейнере
order: -1;
По умолчанию порядковый номер флекс-элементов равен “0”, и они сортируются по возрастанию этого номера.
Это свойство очень полезно, так как позволяет изменять порядок следования флекс-элементов в потоке, не изменяя при этом HTML-код.