Свойство CSS `align-self`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.
Свойство align-self CSS переопределяет значение align-items для элемента сетки или flex-элемента. В сетке оно выравнивает элемент внутри области сетки. Во flexbox оно выравнивает элемент по поперечной оси.
Это свойство не применяется к блочным элементам и ячейкам таблицы. Если поперечное поле элемента flexbox имеет значение auto, то свойство align-self игнорируется.
Попробуйте
align-self: stretch;
align-self: center;
align-self: start;
align-self: end;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">One</div>
<div>Two</div>
<div>Three</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
display: grid;
width: 200px;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Синтаксис
/* Keyword values */ align-self: auto; align-self: normal; /* Positional alignment */ /* align-self does not take left and right values */ align-self: center; /* Put the item around the center */ align-self: start; /* Put the item at the start */ align-self: end; /* Put the item at the end */ align-self: self-start; /* Align the item flush at the start */ align-self: self-end; /* Align the item flush at the end */ align-self: flex-start; /* Put the flex item at the start */ align-self: flex-end; /* Put the flex item at the end */ align-self: anchor-center; /* Baseline alignment */ align-self: baseline; align-self: first baseline; align-self: last baseline; align-self: stretch; /* Stretch 'auto'-sized items to fit the container */ /* Overflow alignment */ align-self: safe center; align-self: unsafe center; /* Global values */ align-self: inherit; align-self: initial; align-self: revert; align-self: revert-layer; align-self: unset;
Значения
Для этого свойства указывается одно или два из следующих ключевых слов:
-
auto - Вычисляется в значение свойства
align-itemsродительского элемента. -
normal - Эффект этого ключевого слова зависит от используемого режима компоновки:
- В абсолютно позиционированной компоновке ключевое слово действует как
startдля абсолютно позиционированных блоков замещаемых элементов и какstretchдля всех остальных абсолютно позиционированных блоков. - В статической позиции абсолютно позиционированной компоновки ключевое слово действует как
stretch. - Для flex-элементов ключевое слово действует как
stretch. - Для элементов сетки это ключевое слово приводит к поведению, схожему с
stretch, за исключением блоков с соотношением сторон или внутренним размером, для которых оно действует какstart. - Это свойство не применяется к блочным элементам и ячейкам таблицы.
- В абсолютно позиционированной компоновке ключевое слово действует как
-
self-start - Выравнивает элементы вплотную к краю контейнера выравнивания, соответствующему начальной стороне элемента на поперечной оси.
-
self-end - Выравнивает элементы вплотную к краю контейнера выравнивания, соответствующему конечной стороне элемента на поперечной оси.
-
flex-start - Край поля элемента flexbox со стороны начала поперечной оси располагается вплотную к краю линии со стороны начала поперечной оси.
-
flex-end - Край поля элемента flexbox со стороны конца поперечной оси располагается вплотную к краю линии со стороны конца поперечной оси.
-
center - Поле элемента flexbox располагается по центру линии на поперечной оси. Если поперечный размер элемента больше размера flex-контейнера, он будет одинаково выступать за его границы в обоих направлениях.
-
baseline,first baseline,last baseline - Задаёт участие в выравнивании по первой или последней базовой линии: выравнивает базовую линию блока из первого или последнего набора базовых линий с соответствующей базовой линией в общем первом или последнем наборе базовых линий всех блоков в группе с общими базовыми линиями. Резервное выравнивание для
first baseline—start, а дляlast baseline—end. -
stretch - Если поперечный размер элемента равен
auto, используемый размер задаётся таким, чтобы максимально заполнить контейнер с учётом ограничений ширины и высоты элемента. Если размер элемента не задан автоматически, это значение заменяется наflex-start, а также наself-startилиself-end, если свойствоalign-contentконтейнера имеет значениеfirst baseline(илиbaseline) либоlast baseline. -
anchor-center - Для элементов с позиционированием относительно якоря выравнивает элемент по центру связанного якорного элемента в блочном направлении. См. раздел Выравнивание по центру якоря с помощью
anchor-center. -
safe - Если размер элемента выходит за границы контейнера выравнивания, элемент выравнивается так, как если бы режим выравнивания имел значение
start. -
unsafe - Указанное значение выравнивания применяется независимо от относительных размеров элемента и контейнера выравнивания.
Формальное определение
| Начальное значение | auto |
|---|---|
| Применяется к | flex-элементам, элементам сетки и абсолютно позиционированным блокам |
| Наследуется | нет |
| Вычисленное значение | <code>auto</code> для абсолютно позиционированных элементов вычисляется в само себя, а для всех остальных блоков — в вычисленное значение свойства align-items родительского элемента (без учёта устаревших ключевых слов) или в <code>start</code>, если у блока нет родителя. Поведение зависит от модели компоновки, как описано для свойства justify-self. В остальных случаях используется указанное значение. |
| Тип анимации | дискретный |
Формальный синтаксис
align-self = auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center <baseline-position> = [ first | last ]? baseline <overflow-position> = unsafe | safe <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
Примеры
HTML
<section> <div>Item #1</div> <div>Item #2</div> <div>Item #3</div> </section>
CSS
section {
display: flex;
align-items: center;
height: 120px;
background: beige;
}
div {
height: 60px;
background: cyan;
margin: 5px;
}
div:nth-child(3) {
align-self: flex-end;
background: pink;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль выравнивания блоков CSS, уровень 3 # align-self-property |
| Модуль гибкой компоновки CSS, уровень 1 # align-items-property |
Совместимость с браузерами
| Настольные устройства | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
align-self |
29
21
|
12
12
|
20
49
|
12.1 |
9
7
|
29
25
|
20
49
|
12.1 |
9
7
|
2.0
1.5
|
4.4
4.4
|
9
7
|
anchor-center |
125 |
125 |
147 |
111 |
26 |
125 |
147 |
83 |
26 |
27.0 |
125 |
26 |
auto |
21 |
79 |
28 |
15 |
7 |
25 |
28 |
14 |
7 |
1.5 |
4.4 |
7 |
flex_context |
36
21–36В более старых версиях спецификации абсолютно позиционированные дочерние элементы рассматриваются как flex-элементы размером 0 на 0. В более поздних версиях спецификации дочерние элементы исключаются из потока, а их положение определяется свойствами выравнивания и распределения. Chrome реализует новое поведение начиная с Chrome 52. |
12 |
20До Firefox 27 поддерживался только однострочный flexbox. |
12.1 |
7 |
36
25–36В более старых версиях спецификации абсолютно позиционированные дочерние элементы рассматриваются как flex-элементы размером 0 на 0. В более поздних версиях спецификации дочерние элементы исключаются из потока, а их положение определяется свойствами выравнивания и распределения. Chrome для Android реализует новое поведение начиная с Chrome для Android 52. |
20До Firefox для Android 27 поддерживался только однострочный flexbox. |
12.1 |
7 |
3.0
1.5–3.0В более старых версиях спецификации абсолютно позиционированные дочерние элементы рассматриваются как flex-элементы размером 0 на 0. В более поздних версиях спецификации дочерние элементы исключаются из потока, а их положение определяется свойствами выравнивания и распределения. Samsung Browser реализует новое поведение начиная с Samsung Browser 6.0. |
37
4.4–37В более старых версиях спецификации абсолютно позиционированные дочерние элементы рассматриваются как flex-элементы размером 0 на 0. В более поздних версиях спецификации дочерние элементы исключаются из потока, а их положение определяется свойствами выравнивания и распределения. WebView для Android реализует новое поведение начиная с WebView для Android 52. |
7 |
grid_context |
57 |
16 |
52 |
44 |
10.1 |
52 |
52 |
43 |
10.3 |
6.2 |
57 |
10.3 |
normal |
21 |
79 |
28 |
15 |
7 |
25 |
28 |
14 |
7 |
1.5 |
4.4 |
7 |
position_absolute_context |
122 |
122 |
134 |
108 |
26 |
122 |
134 |
81 |
26 |
26.0 |
122 |
26 |
stretch |
21 |
79 |
28 |
15 |
7 |
25 |
28 |
14 |
7 |
1.5 |
4.4 |
7 |
См. также
- Основные понятия flexbox
- Выравнивание элементов во flex-контейнере
- Выравнивание блоков в сеточной компоновке
- Выравнивание блоков CSS
align-itemsjustify-selfplace-self
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/align-self