align-content ⚡️ HTML и CSS с примерами кода
Свойство align-content
задаёт тип выравнивания строк внутри флекс-контейнера по поперечной оси при наличии свободного пространства.
Демо
Это свойство не влияет на однострочные flex-контейнеры (т. е. с flex-wrap: nowrap
).
- flex
- flex-basis
- flex-direction
- flex-flow
- flex-grow
- flex-shrink
- flex-wrap
- order
- justify-content
- align-content
- place-content
- justify-items
- align-items
- place-items
- justify-self
- align-self
- place-self
- row-gap
- column-gap
- gap
Синтаксис
/* Positional alignment */ align-content: center; /* Pack items around the center */ align-content: start; /* Pack items from the start */ align-content: end; /* Pack items from the end */ align-content: flex-start; /* Pack flex items from the start */ align-content: flex-end; /* Pack flex items from the end */ align-content: left; /* Pack items from the left */ align-content: right; /* Pack items from the right */ /* Baseline alignment */ align-content: baseline; align-content: first baseline; align-content: last baseline; /* Distributed alignment */ /* Distribute items evenly The first item is flush with the start, the last is flush with the end */ align-content: space-between; /* Distribute items evenly Items have a half-size space on either end */ align-content: space-around; /* Distribute items evenly Items have equal space around them */ align-content: space-evenly; /* Distribute items evenly Stretch 'auto'-sized items to fit the container */ align-content: stretch; /* Overflow alignment */ align-content: safe center; align-content: unsafe center; /* Global values */ align-content: inherit; align-content: initial; align-content: unset;
Значения
Значение по-умолчанию: stretch
Применяется к флекс-контейнеру
flex-start | Строки располагаются в начале поперечной оси. Каждая следующая строка идёт вровень с предыдущей. | |
center | Строки располагаются по центру контейнера. | |
flex-end | Строки располагаются начиная с конца поперечной оси. Каждая предыдущая строка идёт вровень со следующей. | |
space-between | Строки равномерно распределяются в контейнере и расстояние между ними одинаково. | |
space-around | Строки равномерно распределяются таким образом, чтобы пространство между двумя соседними строками было одинаковым. Пустое пространство перед первой строкой и после последней строки равно половине пространства между двумя соседними строками. | |
stretch | Строки равномерно растягиваются, заполняя свободное пространство. |
Спецификации
- CSS Flexible Box Layout Module
Поддержка браузерами
Can I Use flexbox? Data on support for the flexbox feature across the major browsers from caniuse. com.
Пример
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>align-content</title> <style> .flex-container { width: 70px; height: 240px; border: 1px solid #333; padding: 10px; display: flex; flex-wrap: wrap; align-content: center; } .flex-container div { width: 70px; height: 70px; border-radius: 50%; } .red { background: red; } .yellow { background: yellow; } .green { background: green; } </style> </head> <body> <div> <div></div> <div></div> <div></div> </div> </body> </html>
Примечание
Safari до версии 9 поддерживает свойство -webkit-align-content
.
Ссылки
- Свойство
align-content
MDN (рус. )
align-content | CSS справочник
Поддержка браузерами
11.0+ | 28.0+ | 21.0+ | 12.1+ |
Описание
CSS свойство align-content указывает, каким образом будут выравниваться flex-элементы по вертикали внутри flex-контейнера, если разрешён перенос элементов и строк с элементами две или больше.
Примечание: для выравнивания flex-элементов по горизонтали используйте свойство justify-content.
Значение по умолчанию: | stretch |
---|---|
Применяется: | к многострочным flex-контейнерам |
Анимируется: | нет |
Наследуется: | нет |
Версия: | CSS3 |
Синтаксис JavaScript: | object. style.alignContent=»center»; |
Синтаксис
align-content: stretch|center|flex-start|flex-end|space-between|space-around;
Значения свойства
Значение | Описание |
---|---|
stretch | Значение по умолчанию. Если у flex-элементов не задана высота, то они растягиваются на всю высоту контейнера так, чтобы каждая строка имела одинаковую высоту. |
center | flex-элементы располагаются точно по центру flex-контейнера, то есть снизу и сверху от элементов расстояние до границ контейнера будет одинаковым.
Примечание: если flex-элементы занимают больше вертикального пространства, чем высота контейнера, то элементы сместятся так, чтобы переполнение было одинаковым с обоих сторон контейнера. |
flex-start | flex-элементы выравниваются по левому верхнему углу контейнера. |
flex-end | flex-элементы выравниваются по левому нижнему углу контейнера. |
space-between | Строки с flex-элементами равномерно распределяются по вертикали так, чтобы между каждой парой соседних строк расстояние было одинаковым. Первая строка прилегает своей верхней границей к верхней границе контейнера, а последняя строка прилегает своей нижней границей к нижней границе контейнера.
Примечание: если flex-элементы занимают больше вертикального пространства, чем высота контейнера, то данное значение будет соответствовать значению flex-start. |
space-around | Строки с flex-элементы равномерно распределяются по вертикали так, чтобы между каждой парой соседних строк расстояние было одинаковым. Пустое пространство перед первой и после последней строки равно половине расстояния между каждой парой соседних строк.
Примечание: если flex-элементы занимают больше вертикального пространства, чем высота контейнера, то данное значение будет соответствовать значению center. |
Пример
align-content:
stretch
center
flex-start
flex-end
space-between
space-around
1
2
3
4
5
6
7
#main {
width: 200px;
height: 200px;
border: 1px solid black;
display: flex;
flex-wrap: wrap;
align-content: stretch;
}
align-content · WebPlatform Docs
Резюме
Выравнивает строки гибкого контейнера внутри гибкого контейнера, когда на поперечной оси есть дополнительное пространство, аналогично тому, как justify-content выравнивает отдельные элементы внутри основной оси.
Обзорная таблица
- Исходное значение
-
стрейч
- Применяется к
- многострочных гибких контейнеров
- Унаследовано
- Нет
- СМИ
- визуальный
- Расчетное значение
- Анимируемый
- Нет
- Свойство объектной модели CSS
-
выравнивание содержимого
Синтаксис
-
align-content: center
-
выравнивание содержимого: гибкий конец
-
выравнивание содержимого: гибкий старт
-
выравнивание содержимого: пространство вокруг
-
выравнивание содержимого: пробел между
-
выравнивание содержимого: растянуть
-
flex-line-pack: центр
-
flex-line-pack: распространение
-
flex-line-pack: конец
-
flex-line-pack: выравнивание
-
flex-line-pack: start
-
flex-line-pack: стрейч
Значения
- гибкий старт
- Строки упаковываются в начало гибкого контейнера. Край пересечения первой строки в контейнере flex размещается на одном уровне с краем начала flex контейнера, а каждая последующая строка размещается на одном уровне с предыдущей строкой.
- гибкий конец
- Строки упаковываются ближе к концу гибкого контейнера. Поперечный край последней строки размещается на одном уровне с поперечным краем гибкого контейнера, а каждая предыдущая строка размещается на одном уровне с последующей строкой.
- центр
- Строки упакованы по направлению к центру гибкого контейнера. Строки во флекс-контейнере размещаются на одном уровне друг с другом и выравниваются по центру флекс-контейнера с равным количеством пустого пространства между краем содержимого флекс-контейнера и первой строкой в флекс-контейнере, а также между край перекрестного содержимого гибкого контейнера и последняя строка в гибком контейнере. (Если остаточное свободное пространство отрицательно, строки будут переполняться одинаково в обоих направлениях.
- пробел-между
- Строки равномерно распределены во флекс-контейнере. Если остаточное свободное пространство отрицательное, это значение идентично flex-start . В противном случае край первой строки во флекс-контейнере помещается на одном уровне с краем содержимого флекс-контейнера, а край последней строки во флекс-контейнере помещается на одном уровне с краем содержимого флекс-контейнера. end content edge flex-контейнера, а оставшиеся строки в flex-контейнере распределяются так, чтобы пустое пространство между любыми двумя соседними строками было одинаковым.
- пробел-вокруг
- Строки равномерно распределены во гибком контейнере с пробелами половинного размера на обоих концах. Если оставшееся свободное пространство отрицательное, это значение идентично center . В противном случае строки во гибком контейнере распределяются таким образом, что пустое пространство между любыми двумя соседними строками одинаково, а пустое пространство перед первой и после последней строк во гибком контейнере составляет половину размера других пустых пространств.
- стрейч
- Строки растягиваются, чтобы занять оставшееся место. Если остаточное свободное пространство отрицательное, это значение идентично flex-start . В противном случае свободное пространство делится поровну между всеми линиями, увеличивая их поперечный размер.
Примеры
Интервал между строками в многострочном гибком контейнере. Измените значения в живом примере.
.контейнер { дисплей: гибкий; flex-flow: перенос строк; выравнивание содержимого: пространство вокруг; ширина: 400 пикселей; высота: 200 пикселей; фон: #CCC; } .контейнер раздел { высота: 30 пикселей; /* установите для этого параметра значение «auto», чтобы увидеть, как линии реагируют на «align-items: stretch» */ поле: 0px; } .container .третий элемент { ширина: 160 пикселей; фон: #CC3333; размер шрифта: 14px; } .container .второй элемент { ширина: 140 пикселей; фон: #FFFC33; } .контейнер .первый элемент { ширина: 100 пикселей; фон: #3333FF; }
Просмотреть живой пример
Примечания
- Это свойство не действует, если flexbox имеет только одну строку. Только flex-контейнеры с несколькими строками могут когда-либо иметь свободное пространство на поперечной оси для выравнивания строк, потому что в flex-контейнере с одной строкой единственная линия автоматически растягивается, чтобы заполнить пространство.
- В более ранних проектах это свойство называлось flex-line-pack .
Связанные характеристики
- Модуль компоновки гибких блоков CSS
- Рекомендация кандидата
См. также
Статьи по теме
Flexbox
align-content
элементы выравнивания
самовыравнивание
обрыв перед
гибкий
гибкая основа
flex-направление
гибкий поток
гибкий рост
гибкий термоусадочный
гибкая пленка
выравнивание содержимого
Внешние ресурсы
Также посетите следующие демонстрационные сайты:
- Flexbox Playground
- Флекси-боксы
- Начинающие
- Концепции
- HTML
- УСБ
- Доступность
- JavaScript
- ДОМ
- СВГ
css — Запутался между Justify-content:, align-items: и text-align
Justify-content:
На коротком justify-content
выровняйте содержимое контейнера (как следует из названия). Это может быть, например, один или несколько дочерних элементов компонента. Вы должны это сделать, когда хотите выровнять другие контейнеры в целом (например, кнопки, div, входы и т. д.).
Внимание! Как упоминал @Aman Sharma justify-content
определяет, как браузер распределяет пространство между элементами контента и вокруг них вдоль основной оси гибкого контейнера
.
Это означает, что если вы используете flex-direction: column
, главной осью будет ось Y (поэтому justify-content: center фактически центрирует элементы по вертикали, а align-item: center
выполнит работу для горизонтальное выравнивание).
(Противоречие, если вы используете flex-direction: row
или не указываете направление, justify-content:center
будет центрировать содержимое по горизонтали).
Align-items
Как вы уже могли догадаться, вертикальное выравнивание чем-то похоже на justify-content
, но это верно лишь частично. В то время как align-items: center
выполняет работу по центрированию дочерних элементов контейнера на поперечной оси, есть некоторые отличия. Одним из наиболее очевидных является то, что они не имеют общих свойств ( justify-content
имеет space-between
, space-arround
и т. д., а align-items
имеет baseline
, self-start
и т. д.).
Чтобы лучше понять это (и флексбокс в целом), боюсь, ярлыков нет. Но я бы порекомендовал вам попытаться найти учебник, который, по вашему мнению, вам подходит (видео или текст — не имеет большого значения), и попробовать немного поиграть с ними.
Text-align
Одно из основных отличий между text-align
+ vertical-align
и justify-content
+ align-items
заключается в том, что первая пара работает только с блочными элементами , а вторая работает только с гибкими контейнерами .