Spec-Zone.ru › CSS

Свойство 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-items
  • justify-self
  • place-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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API