Разница между align-items и align-content в Flexbox
месяц назад
Nikolai Gagarinov
Ответы
1
Основные моменты
В Flexbox есть главная ось (main axis) и поперечная ось (cross axis).
Главная ось определяется свойством flex-direction:
row(по умолчанию) — главная ось горизонтальная (X), поперечная — вертикальная (Y)column— главная ось вертикальная (Y), поперечная — горизонтальная (X)
-
justify-content- Распределяет элементы по главной оси
- Пример:
-
align-items- Выравнивает элементы по поперечной оси (не зависит от количества строк)
- Пример:
-
align-content- Распределяет пространство между рядами элементов по поперечной оси
- Работает только если есть несколько строк (например, при
flex-wrap: wrap) - Пример:
Если элементов только одна строка, align-content не имеет эффекта.
Почему возникает путаница при flex-direction: column
- Главная ось теперь вертикальная (Y)
- Поперечная ось — горизонтальная (X)
justify-content→ распределяет элементы по вертикалиalign-items→ выравнивает элементы по горизонтали (поперечной оси)align-content→ распределяет пространство между рядами по горизонтали, но работает только при нескольких колонках (wrap)
Схема для запоминания
Вывод:
align-itemsвыравнивает элементы по поперечной оси внутри строки.align-contentраспределяет пространство между строками (или колонками, еслиflex-direction: column) по поперечной оси.- Поэтому в тесте при
flex-direction: columnдля распределения по горизонтали используетсяalign-content— потому что речь о нескольких колонках элементов, а не об отдельных элементах.
Подробнее об этом в уроке
месяц назад
Nikolai Gagarinov