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-контейнере. Если в контейнере такой стиль не определен, то применяется значение
.stretch
flex-start
flex-end
center
baseline
<!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.