Свойство 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-код.
