align-items
Базовая линия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Свойство CSS align-items устанавливает значение align-self для всех прямых дочерних элементов как группы. В flexbox оно управляет выравниванием элементов по поперечной оси. В сетке оно управляет выравниванием элементов по оси блоков внутри их областей сетки.
Попробовать
Ниже представлен интерактивный пример, демонстрирующий некоторые значения для align-items с использованием сетки и flex-макета.
Синтаксис
/* Basic keywords */ align-items: normal; align-items: stretch; /* Positional alignment */ /* align-items does not take left and right values */ align-items: center; align-items: start; align-items: end; align-items: flex-start; align-items: flex-end; align-items: self-start; align-items: self-end; align-items: anchor-center; /* Baseline alignment */ align-items: baseline; align-items: first baseline; align-items: last baseline; /* Overflow alignment (for positional alignment only) */ align-items: safe center; align-items: unsafe center; /* Global values */ align-items: inherit; align-items: initial; align-items: revert; align-items: revert-layer; align-items: unset;
Значения
normal-
Эффект этого ключевого слова зависит от режима макета:
- В макетах с абсолютным позиционированием ключевое слово ведет себя как
startдля замещающих элементов с абсолютным позиционированием и какstretchдля всех остальных элементов с абсолютным позиционированием. - В статическом позиционировании макетов с абсолютным позиционированием ключевое слово ведет себя как
stretch. - Для flex-элементов ключевое слово ведет себя как
stretch. - Для grid-элементов это ключевое слово приводит к поведению, аналогичному
stretch, за исключением элементов с отношением сторон или внутренними размерами, где оно ведет себя какstart. - Свойство не применяется к элементам уровня блока и ячейкам таблицы.
- В макетах с абсолютным позиционированием ключевое слово ведет себя как
center-
Блоки flex-элементов центрируются внутри строки по поперечной оси. Если размер элемента по поперечной оси больше, чем у контейнера flex, он будет переливаться равномерно в обоих направлениях.
start-
Элементы располагаются плотно друг к другу в сторону начальной части контейнера выравнивания на соответствующей оси.
end-
Элементы располагаются плотно друг к другу в сторону конечной части контейнера выравнивания на соответствующей оси.
self-start-
Элементы располагаются плотно к начальной стороне контейнера выравнивания для данного элемента на соответствующей оси.
self-end-
Элементы располагаются плотно к конечной стороне контейнера выравнивания для данного элемента на соответствующей оси.
-
baseline,first baseline,last baseline -
Все flex-элементы выравниваются таким образом, что их базовые линии контейнера flex выравниваются. Элемент с наибольшим расстоянием между его краем отступа по началу поперечной оси и его базовой линией выравнивается с началом поперечной оси линии.
stretch-
Если элементы меньше контейнера выравнивания, элементы с автоматическим размером будут равномерно увеличены для заполнения контейнера, соблюдая ограничения по ширине и высоте элементов.
anchor-center-
В случае элементов с позиционированием по якорю, выравнивает элементы по центру связанного элемента якоря по оси блоков. См. Центрирование на якоре с использованием
anchor-center. safe-
Используется вместе с ключевым словом выравнивания. Если выбранное ключевое слово приводит к тому, что элемент выходит за пределы контейнера выравнивания, вызывая потерю данных, элемент вместо этого выравнивается так, как если бы режим выравнивания был
start. unsafe-
Используется вместе с ключевым словом выравнивания. Независимо от относительных размеров элемента и контейнера выравнивания и от того, может ли произойти переполнение, вызывающее потерю данных, данное значение выравнивания соблюдается.
Также существуют два значения, определенные для flexbox, так как они основаны на концепциях осей flex-модели, которые работают и в сетках:
flex-start-
Используется только в flex-макете, выравнивает flex-элементы плотно к стороне main-start или cross-start контейнера flex. При использовании вне контекста форматирования flex это значение ведет себя как
start. flex-end-
Используется только в flex-макете, выравнивает flex-элементы плотно к стороне main-end или cross-end контейнера flex. При использовании вне контекста форматирования flex это значение ведет себя как
end.
Формальное определение
| Начальное значение | normal |
|---|---|
| Применимо к | всем элементам |
| Наследуется | нет |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
Примеры
CSS
Мы стилизуем контейнер и элементы таким образом, чтобы обеспечить две строки или ряда элементов. Мы определили классы .flex и .grid, которые будут применяться к контейнеру с помощью JavaScript. Они устанавливают значение display контейнера и изменяют цвета фона и границы, предоставляя дополнительный индикатор, что макет изменился. Шесть flex-элементов имеют каждый различный цвет фона, при этом 4-й элемент имеет две строки, а 6-й элемент имеет увеличенный шрифт.
.flex,
.grid {
height: 200px;
width: 500px;
align-items: initial; /* Change the value in the live sample */
border: solid 5px transparent;
gap: 3px;
}
.flex {
display: flex;
flex-wrap: wrap;
background-color: #8c8c9f;
border-color: magenta;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 100px);
background-color: #9f8c8c;
border-color: slateblue;
}
#item1 {
background-color: #8cffa0;
min-height: 30px;
}
#item2 {
background-color: #a0c8ff;
min-height: 50px;
}
#item3 {
background-color: #ffa08c;
min-height: 40px;
}
#item4 {
background-color: #ffff8c;
min-height: 60px;
}
#item5 {
background-color: #ff8cff;
min-height: 70px;
}
#item6 {
background-color: #8cffff;
min-height: 50px;
font-size: 30px;
}
HTML
Мы включаем контейнер <div> с шестью вложенными <div> дочерними элементами. HTML для формы и JavaScript, которые изменяют класс контейнера, скрыты для краткости.
<div id="container" class="flex"> <div id="item1">1</div> <div id="item2">2</div> <div id="item3">3</div> <div id="item4">4<br />line 2</div> <div id="item5">5</div> <div id="item6">6</div> </div>
Результат
Спецификации
| Спецификация |
|---|
| CSS Box Alignment Module Level 3 # align-items-property |
| CSS Flexible Box Layout Module Level 1 # align-items-property |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
align-items |
2921 | 1212 | 2049 | 1615 | 97 | 2925 | 2049 | 1614 | 97 | 2.01.5 | 4.44.4 |
anchor-center |
125 | 125 | Нет | 111 | Нет | 125 | Нет | 83 | Нет | 27.0 | 125 |
flex_context |
5221–52Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Chrome реализует новое поведение, начиная с Chrome 52. |
12 | 20Поддержка многострочного flexbox появилась в Firefox 28. |
3915–39Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Opera реализует новое поведение, начиная с Opera 39. |
7 | 5225–52Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Chrome реализует новое поведение, начиная с Chrome 52. |
20Поддержка многострочного flexbox появилась в Firefox 28. |
4114–41Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Opera реализует новое поведение, начиная с Opera 41. |
7 | 6.01.5–6.0Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Samsung Internet реализует новое поведение, начиная с Samsung Internet 6.0. |
524.4–52Старые версии спецификации обрабатывают дочерние элементы с абсолютным позиционированием так, как будто они являются flex-элементами размером 0 на 0. Более поздние версии спецификации выводят дочерние элементы из потока и устанавливают их позиции на основе свойств align и justify. Chrome реализует новое поведение, начиная с Chrome 52. |
grid_context |
57 | 16 | 52 | 44 | 10.1 | 52 | 52 | 43 | 10.3 | 6.2 | 57 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/align-items