align-self ⚡️ HTML и CSS с примерами кода
Свойство align-self выравнивает флекс-элементы текущей строки, переписывая значение align-items. Если у какого-либо flex-элемента margin в поперечной оси выставлен в auto, то align-self игнорируется.
Демо
Flexbox и выравнивание- 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
Синтаксис
/* 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 */ /* 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: unset;
Значения
Значение по-умолчанию: auto
Применяется к: флексам, гридам
auto- Берёт родительское значение
align-itemsилиstretch, если нет родителя.
flex-start- Элемент выравнивается в начале поперечной оси контейнера.
flex-end- Элемент выравнивается в конце поперечной оси контейнера.
center- Элемент выравнивается по центральной линии на поперечной оси.
baseline- Элемент выравнивается по базовой линии текста.
stretch- Элемент растягивается таким образом, чтобы занять всё свободное пространство контейнера по поперечной оси.
Спецификации
- CSS Box Alignment Module Level 3
- CSS Flexible Box Layout Module
Поддержка браузерами
Описание и примеры
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>align-items</title>
<style>
.flex-container {
display: flex;
align-items: flex-start;
height: 160px; /* Высота контейнера */
}
.
flex-item {
margin-left: 1rem; /* Расстояние между блоками */
padding: 10px; /* Поля вокруг текста */
width: 33.333%; /* Ширина блоков */
}
.flex-item:first-child {
margin-left: 0;
}
.flex-item:hover {
align-self: stretch; /* Растягиваем при наведении */
}
.item1 {
background: #f0ba7d;
}
.item2 {
background: #cae2aa;
}
.item3 {
background: #a6c0c9;
}
</style>
</head>
<body>
<div>
<div>
Фенек — лисица, живущая в пустынях Северной Африки.
Имеет достаточно миниатюрный размер и своеобразную
внешность с большими ушами.
</div>
<div>
Корсак — хищное млекопитающее рода лисиц.
</div>
<div>
Лисица — хищное млекопитающее семейства псовых,
наиболее распространённый и самый крупный вид рода
лисиц.
</div>
</div>
</body>
</html>
Примечание
Safari до версии 9 поддерживает свойство -webkit-align-self.
См.также
- Свойство
align-items
Выравнивание элементов. align-items и align-self ⚡️ HTML и CSS с примерами кода
Свойство align-items
Свойство align-items также выравнивает элементы, но уже по поперечной оси (cross axis) (при расположении в виде строки по вертикали, при расположении в виде столбца — по горизонтали). Это свойство может принимать следующие значения:
stretch: значение по умолчанию, при котором flex-элементы растягиваются по всей высоте (при расположении в строку) или по всей ширине (при расположении в столбик) flex-контейнераflex-start: элементы выравниваются по верхнему краю (при расположении в строку) или по левому краю (при расположении в столбик) flex-контейнераflex-end: элементы выравниваются по нижнему краю (при расположении в строку) или по правому краю (при расположении в столбик) flex-контейнераcenter: элементы выравниваются по центру flex-контейнераbaseline: элементы выравниваются в соответствии со своей базовой линией
Выравнивание при расположении в строку:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Flexbox в CSS3</title>
<style>
.
flex-container {
display: flex;
border: 1px #ccc solid;
height: 5em;
}
.flex-start {
align-items: flex-start;
}
.flex-end {
align-items: flex-end;
}
.center {
align-items: center;
}
.baseline {
align-items: baseline;
}
.flex-item {
text-align: center;
font-size: 1em;
padding: 1.2em;
color: white;
}
.largest-item {
padding-top: 2em;
}
.color1 {
background-color: #675ba7;
}
.color2 {
background-color: #9bc850;
}
.color3 {
background-color: #a62e5c;
}
.color4 {
background-color: #2a9fbc;
}
</style>
</head>
<body>
<h4>Flex-start</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Flex-end</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Center</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Baseline</h4>
<div>
<div>Flex Item 1</div>
<div>
Flex Item 2
</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
</body>
</html>
Аналогично свойство работает при расположении в столбик.
.flex-container {
display: flex;
border: 1px #ccc solid;
flex-direction: column;
width: 12em;
}
Свойство align-self
Свойство align-self позволяет переопределить значение свойства align-items для одного элемента. Оно может принимать все те же значения плюс значение auto:
auto: значение по умолчанию, при котором элемент получает значение от свойстваalign-items, которое определено в flex-контейнере. Если в контейнере такой стиль не определен, то применяется значение. stretchstretchflex-startflex-endcenterbaseline
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Flexbox в CSS3</title>
<style>
.flex-container {
display: flex;
border: 1px #ccc solid;
justify-content: space-between;
align-items: stretch;
height: 12em;
}
.
flex-item {
text-align: center;
font-size: 1em;
padding: 1.2em;
color: white;
}
.item1 {
background-color: #675ba7;
align-self: center;
}
.item2 {
background-color: #9bc850;
align-self: flex-start;
}
.item3 {
background-color: #a62e5c;
align-self: flex-end;
}
.item4 {
background-color: #2a9fbc;
align-self: center;
}
</style>
</head>
<body>
<h4>Align-self</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
</body>
</html>
Здесь для flex-контейнера задано растяжение по высоте с помощью значения . Однако каждый из элементов переопределяет это поведение:
См. также
- align-items
- align-self
align-self — CSS: Каскадные таблицы стилей
Свойство CSS align-self переопределяет значение align-items сетки или гибкого элемента.
В сетке он выравнивает элемент внутри области сетки. Во Flexbox он выравнивает элемент по поперечной оси.
Это свойство не применяется к блокам на уровне блоков или к ячейкам таблицы. Если поперечное поле элемента flexbox равно auto , то align-self игнорируется.
/* Значения ключевых слов */ выравнивание: авто; выравнивание: нормальное; /* Позиционное выравнивание */ /* align-self не принимает левое и правое значения */ выровнять себя: по центру; /* Поместите элемент по центру */ выровнять себя: начать; /* Ставим элемент в начало */ выровнять себя: конец; /* Поместить элемент в конец */ align-self: самозапуск; /* Выравнивание элемента в начале */ выровнять себя: самоконец; /* Выровняйте элемент по краю */ выровнять себя: гибкий старт; /* Поместите flex-элемент в начало */ выравнивание: flex-end; /* Поместите flex-элемент в конец */ /* Базовое выравнивание */ выровнять себя: базовый уровень; align-self: первая базовая линия; align-self: последний базовый уровень; выровнять себя: растянуть; /* Растянуть элементы с автоматическим размером, чтобы они соответствовали контейнеру */ /* Выравнивание переполнения */ align-self: безопасный центр; align-self: небезопасный центр; /* Глобальные значения */ выровнять себя: наследовать; выровнять себя: начальный; выровнять себя: вернуться; выровнять себя: вернуть слой; выровнять себя: не установлено;
Значения
-
авто Вычисляет родительское значение
align-items.
-
обычный Эффект этого ключевого слова зависит от режима макета, в котором мы находимся:
- В абсолютно позиционированных макетах ключевое слово ведет себя как
startна заменяет абсолютно позиционированных блока и какрастягиваетна все остальные абсолютно позиционируемых блока. - В статической позиции абсолютно позиционированных макетов ключевое слово ведет себя как
stretch. - Для гибких элементов ключевое слово ведет себя как
stretch. - Для элементов сетки это ключевое слово приводит к поведению, аналогичному поведению
stretch, за исключением полей с соотношением сторон или внутренними размерами, где оно ведет себя какstart. - Свойство не применяется к блокам на уровне блоков и к ячейкам таблицы.
- В абсолютно позиционированных макетах ключевое слово ведет себя как
-
самозапуск Выравнивает элементы, которые должны быть заподлицо с краем контейнера выравнивания, соответствующим начальной стороне элемента на поперечной оси.

-
самоконечный Выравнивает элементы, которые должны быть заподлицо с краем контейнера выравнивания, соответствующим конечной стороне элемента на поперечной оси.
-
гибкий пуск Край начального поля гибкого элемента совмещен с краем начального пересечения линии.
-
гибкий конец Край поперечного поля гибкого элемента находится на одном уровне с краем поперечного конца линии.
-
центр Поле поля гибкого элемента располагается по центру линии на поперечной оси. Если поперечный размер элемента больше, чем гибкий контейнер, он будет переполняться одинаково в обоих направлениях.
-
базовый уровень,первый базовый уровень,последний базовый уровень Указывает участие в выравнивании первой или последней базовой линии: выравнивает базовую линию выравнивания первого или последнего набора базовых линий блока с соответствующей базовой линией в общем первом или последнем наборе базовых линий всех блоков в его группе совместного использования базовых линий.
Резервное выравнивание для first baselineравноstart, выравнивание дляlast baselineравноend.-
стрейч Если объединенный размер элементов вдоль поперечной оси меньше размера контейнера выравнивания, а элемент имеет размер
auto, его размер увеличивается одинаково (не пропорционально), при этом соблюдая ограничения, налагаемыеmax -height/max-width(или эквивалентная функциональность), чтобы суммарный размер всех элементовautoточно заполнил контейнер выравнивания по поперечной оси.-
сейф Если размер элемента выходит за пределы контейнера выравнивания, вместо этого элемент выравнивается, как если бы режим выравнивания был
start.-
небезопасно Независимо от относительных размеров элемента и контейнера выравнивания, заданное значение выравнивания учитывается.

| Исходное значение | авто |
|---|---|
| Применимо к | гибкие элементы, элементы сетки и блоки с абсолютным позиционированием |
| Унаследовано | нет |
Вычисляемое значение элементы на родительском элементе (за вычетом любых устаревших ключевых слов) на всех остальных полях или начинаются с , если у ящика нет родителя. Его поведение зависит от модели макета, как описано для justify-self . В противном случае указанное значение. | |
| Тип анимации | дискретный |
align-self =
auto |
обычный |
стрейч |
<базовая позиция> |
<позиция-переполнения>?">
=
[ first | last ]? &&
baseline">
=
небезопасно |
safe">
=
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
HTML
Элемент №1Элемент №2Элемент №3раздел>
CSS
раздел {
дисплей: гибкий;
выравнивание элементов: по центру;
высота: 120 пикселей;
фон: бежевый;
}
дел {
высота: 60 пикселей;
фон: голубой;
поле: 5px;
}
div: n-й ребенок (3) {
выравнивание: flex-end;
фон: розовый;
}
Result
| Specification |
|---|
| CSS Box Alignment Module Level 3 # align-self-property |
| CSS Flexible Box Layout Module Level 1 # align-items-property |
Таблицы BCD загружаются только в браузере с включенным JavaScript.
Включите JavaScript для просмотра данных.
- Руководство CSS Flexbox: Основные понятия Flexbox
- Руководство CSS Flexbox: Выравнивание элементов в гибком контейнере
- Руководство по CSS Grid: Выравнивание блоков в макетах CSS Grid
- Выравнивание блока CSS
- Свойство
align-items
Обнаружили проблему с содержанием этой страницы?
- Отредактируйте страницу на GitHub.
- Сообщить о проблеме с содержимым.
- Посмотреть исходный код на GitHub.
Хотите принять больше участия?
Узнайте, как внести свой вклад.
Последний раз эта страница была изменена участниками MDN.
Свойство CSS align-self
❮ Назад Полное руководство по CSS Далее ❯
Пример
Центрирование выравнивания для одного из элементов внутри гибкого элемента:
#myBlueDiv
{
выровнять себя: по центру;
}
Попробуйте сами »
Другие примеры «Попробуйте сами» ниже.
Определение и использование
The align-self 9Свойство 0005 указывает выравнивание в направлении блока для выбранного элемента внутри контейнера flexbox или сетки.
Для страниц на английском языке направление блока — вниз, а направление строки — слева направо.
Совет: Чтобы выровнять элемент сетки в линейном направлении вместо блочного, используйте свойства justify-self или justify-items .
Примечание: Свойство align-self переопределяет свойства сетки или гибкого контейнера. align-items свойство.
Показать демо ❯
| Значение по умолчанию: | авто |
|---|---|
| Унаследовано: | нет |
| Анимация: | нет. Читать о анимированном |
| Версия: | CSS3 |
| Синтаксис JavaScript: | объект . style.alignSelf="center"
Попробуй |
Поддержка браузера
Числа в таблице указывают первую версию браузера, которая полностью поддерживает это свойство.
| Собственность | |||||
|---|---|---|---|---|---|
| самовыравнивание | 57,0 | 16,0 | 52,0 | 10,1 | 44,0 |
Синтаксис CSS
align-self: auto|stretch|center|flex-start|flex-end|baseline|initial|inherit;
Значения свойств
| Значение | Описание | Играй |
|---|---|---|
| авто | По умолчанию. Элемент наследует свойство align-items своего родительского контейнера или «растягивается», если у него нет родительского контейнера | Демонстрация ❯ |
| стрейч | Элемент расположен так, чтобы соответствовать контейнеру | Демонстрация ❯ |
| центр | Элемент расположен в центре контейнера | Демонстрация ❯ |
| гибкий пуск | Элемент расположен в начале контейнера | Демонстрация ❯ |
| гибкий конец | Элемент расположен в конце контейнера | Демонстрация ❯ |
| базовый уровень | Элемент расположен на базовой линии контейнера | Демонстрация ❯ |
| начальный | Устанавливает для этого свойства значение по умолчанию. Читать про начальный | |
| унаследовать | Наследует это свойство от родительского элемента. Читать о унаследовать |
Дополнительные примеры
align-self в макете сетки
Установить выравнивание в конце в направлении блока для одного элемента сетки с помощью свойства align-self:
#container {
display: grid;
}
#myDiv {
align-self: end;
}
Попробуйте сами »
Связанные страницы
Учебник CSS: CSS grid
Учебник CSS: CSS flexbox свойство self
Ссылка HTML DOM: свойство alignSelf
❮ Предыдущий Полное руководство по CSS Далее ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.



flex-item {
margin-left: 1rem; /* Расстояние между блоками */
padding: 10px; /* Поля вокруг текста */
width: 33.333%; /* Ширина блоков */
}
.flex-item:first-child {
margin-left: 0;
}
.flex-item:hover {
align-self: stretch; /* Растягиваем при наведении */
}
.item1 {
background: #f0ba7d;
}
.item2 {
background: #cae2aa;
}
.item3 {
background: #a6c0c9;
}
</style>
</head>
<body>
<div>
<div>
Фенек — лисица, живущая в пустынях Северной Африки.
Имеет достаточно миниатюрный размер и своеобразную
внешность с большими ушами.
</div>
<div>
Корсак — хищное млекопитающее рода лисиц.
</div>
<div>
Лисица — хищное млекопитающее семейства псовых,
наиболее распространённый и самый крупный вид рода
лисиц.
</div>
</div>
</body>
</html>
flex-container {
display: flex;
border: 1px #ccc solid;
height: 5em;
}
.flex-start {
align-items: flex-start;
}
.flex-end {
align-items: flex-end;
}
.center {
align-items: center;
}
.baseline {
align-items: baseline;
}
.flex-item {
text-align: center;
font-size: 1em;
padding: 1.2em;
color: white;
}
.largest-item {
padding-top: 2em;
}
.color1 {
background-color: #675ba7;
}
.color2 {
background-color: #9bc850;
}
.color3 {
background-color: #a62e5c;
}
.color4 {
background-color: #2a9fbc;
}
</style>
</head>
<body>
<h4>Flex-start</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Flex-end</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Center</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
<h4>Baseline</h4>
<div>
<div>Flex Item 1</div>
<div>
Flex Item 2
</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
</body>
</html>
flex-item {
text-align: center;
font-size: 1em;
padding: 1.2em;
color: white;
}
.item1 {
background-color: #675ba7;
align-self: center;
}
.item2 {
background-color: #9bc850;
align-self: flex-start;
}
.item3 {
background-color: #a62e5c;
align-self: flex-end;
}
.item4 {
background-color: #2a9fbc;
align-self: center;
}
</style>
</head>
<body>
<h4>Align-self</h4>
<div>
<div>Flex Item 1</div>
<div>Flex Item 2</div>
<div>Flex Item 3</div>
<div>Flex Item 4</div>
</div>
</body>
</html>


Резервное выравнивание для 
style.alignSelf="center"
Попробуй
Читать про начальный