Свойство CSS `justify-self`
Базовая совместимость Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с октября 2017 года.
Свойство justify-self в CSS задаёт способ выравнивания блока внутри контейнера выравнивания по соответствующей оси.
Попробуйте
justify-self: stretch;
justify-self: center;
justify-self: start;
justify-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: 220px;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Поведение этого свойства зависит от используемого режима макета:
- В блочных макетах оно выравнивает элемент внутри содержащего блока по строчной оси.
- Для абсолютно позиционированных элементов оно выравнивает элемент внутри содержащего блока по строчной оси с учётом значений смещения top, left, bottom и right.
- В макетах с ячейками таблицы это свойство игнорируется. Подробнее о выравнивании в блочном, абсолютно позиционированном и табличном макетах.
- В макетах Flexbox это свойство игнорируется. Подробнее о выравнивании во Flexbox.
- В макетах Grid оно выравнивает элемент внутри области сетки по строчной оси. Подробнее о выравнивании в макетах Grid.
Синтаксис
/* Basic keywords */ justify-self: auto; justify-self: normal; justify-self: stretch; /* Positional alignment */ justify-self: center; /* Pack item around the center */ justify-self: start; /* Pack item from the start */ justify-self: end; /* Pack item from the end */ justify-self: flex-start; /* Equivalent to 'start'. Note that justify-self is ignored in flexbox layouts. */ justify-self: flex-end; /* Equivalent to 'end'. Note that justify-self is ignored in flexbox layouts. */ justify-self: self-start; justify-self: self-end; justify-self: left; /* Pack item from the left */ justify-self: right; /* Pack item from the right */ justify-self: anchor-center; /* Baseline alignment */ justify-self: baseline; justify-self: first baseline; justify-self: last baseline; /* Overflow alignment (for positional alignment only) */ justify-self: safe center; justify-self: unsafe center; /* Global values */ justify-self: inherit; justify-self: initial; justify-self: revert; justify-self: revert-layer; justify-self: unset;
Это свойство может принимать одну из трёх форм:
- Основные ключевые слова: одно из ключевых значений
normal,autoилиstretch. - Выравнивание по базовой линии: ключевое слово
baseline, а также, при необходимости, одно изfirstилиlast. - Позиционное выравнивание:
- одно из значений:
center,start,end,flex-start,flex-end,self-start,self-end,leftилиright. - А также, при необходимости,
safeилиunsafe.
- одно из значений:
Значения
-
auto - Используется значение свойства
justify-itemsродительского блока, если у блока есть родитель и он не позиционирован абсолютно. В противном случаеautoпредставляет собойnormal. -
normal - Поведение этого ключевого слова зависит от используемого режима макета:
- В блочных макетах ключевое слово является синонимом
start. - В макетах с абсолютным позиционированием ключевое слово ведёт себя как
startдля замещаемых абсолютно позиционированных блоков и какstretchдля всех остальных абсолютно позиционированных блоков. - В макетах с ячейками таблицы это ключевое слово не имеет значения, поскольку свойство игнорируется.
- В макетах Flexbox это ключевое слово не имеет значения, поскольку свойство игнорируется.
- В макетах Grid это ключевое слово приводит к поведению, похожему на
stretch, за исключением блоков с соотношением сторон или внутренним размером, для которых оно ведёт себя какstart.
- В блочных макетах ключевое слово является синонимом
-
start - Элементы располагаются вплотную друг к другу у начального края контейнера выравнивания по соответствующей оси.
-
end - Элементы располагаются вплотную друг к другу у конечного края контейнера выравнивания по соответствующей оси.
-
flex-start - Для элементов, не являющихся дочерними элементами flex-контейнера, это значение обрабатывается как
start. -
flex-end - Для элементов, не являющихся дочерними элементами flex-контейнера, это значение обрабатывается как
end. -
self-start - Элемент располагается вплотную к краю контейнера выравнивания со стороны начала элемента по соответствующей оси.
-
self-end - Элемент располагается вплотную к краю контейнера выравнивания со стороны конца элемента по соответствующей оси.
-
center - Элементы располагаются вплотную друг к другу по центру контейнера выравнивания.
-
left - Элементы располагаются вплотную друг к другу у левого края контейнера выравнивания. Если ось свойства не параллельна строчной оси, это значение ведёт себя как
start. -
right - Элементы располагаются вплотную друг к другу у правого края контейнера выравнивания по соответствующей оси. Если ось свойства не параллельна строчной оси, это значение ведёт себя как
start. -
baseline,first baseline,last baseline - Задаёт участие в выравнивании по первой или последней базовой линии: выравнивает базовую линию блока из первого или последнего набора базовых линий с соответствующей базовой линией в общем первом или последнем наборе базовых линий всех блоков группы совместного выравнивания по базовой линии. Резервным значением выравнивания для
first baselineявляетсяstart, а дляlast baseline—end. -
stretch - Если суммарный размер элементов меньше размера контейнера выравнивания, размеры всех элементов с размером
autoувеличиваются одинаково (не пропорционально), при этом соблюдаются ограничения, заданные свойствамиmax-height/max-width(или эквивалентной функциональностью), так что суммарный размер точно заполняет контейнер выравнивания. -
anchor-center - Для элементов, позиционированных относительно якоря, выравнивает элемент по центру связанного с ним якорного элемента в строчном направлении. См. раздел «Выравнивание по центру якоря с помощью
anchor-center». -
safe - Если размер элемента превышает размер контейнера выравнивания, вместо этого элемент выравнивается так, как если бы режимом выравнивания было
start. -
unsafe - Независимо от относительных размеров элемента и контейнера выравнивания применяется заданное значение выравнивания.
Формальное определение
| Начальное значение | auto |
|---|---|
| Применяется к | блочным блокам, абсолютно позиционированным блокам и элементам сетки |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
justify-self = auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center <baseline-position> = [ first | last ]? baseline <overflow-position> = unsafe | safe <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
Примеры
Основной пример
В следующем примере используется сетка размером 2 × 2. Изначально для контейнера сетки задано значение justify-items, равное stretch — значению по умолчанию. В результате элементы сетки растягиваются на всю ширину своих ячеек.
Затем для второго, третьего и четвёртого элементов сетки задаются разные значения justify-self, чтобы показать, как они переопределяют значение justify-items. В результате ширина элементов сетки становится равной ширине их содержимого, а сами элементы выравниваются в разных позициях своих ячеек.
HTML
<article class="container"> <span>First child</span> <span>Second child</span> <span>Third child</span> <span>Fourth child</span> </article>
CSS
html {
font-family: "Helvetica", "Arial", sans-serif;
letter-spacing: 1px;
}
article {
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
margin: 20px;
width: 300px;
justify-items: stretch;
}
span:nth-child(2) {
justify-self: start;
}
span:nth-child(3) {
justify-self: center;
}
span:nth-child(4) {
justify-self: end;
}
article span {
background-color: black;
color: white;
margin: 1px;
text-align: center;
}
article,
span {
padding: 10px;
border-radius: 7px;
}
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
justify-self |
57 |
16 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
6.0 |
57 |
10.3 |
anchor-center |
125 |
125 |
147 |
111 |
26 |
125 |
147 |
83 |
26 |
27.0 |
125 |
26 |
auto |
57 |
79 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
7.0 |
57 |
10.3 |
block_context |
130 |
130 |
Нет |
115 |
Нет |
130 |
Нет |
86 |
Нет |
28.0 |
130 |
Нет |
grid_context |
57 |
16 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
6.0 |
57 |
10.3 |
left |
57 |
79 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
7.0 |
57 |
10.3 |
normal |
57 |
79 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
7.0 |
57 |
10.3 |
position_absolute_context |
122 |
122 |
134 |
108 |
26 |
122 |
134 |
81 |
26 |
26.0 |
122 |
26 |
right |
57 |
79 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
7.0 |
57 |
10.3 |
stretch |
57 |
79 |
45 |
44 |
10.1 |
57 |
45 |
43 |
10.3 |
7.0 |
57 |
10.3 |
См. также
- Выравнивание блоков в макете Grid
- Модуль выравнивания блоков CSS
justify-itemsalign-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/justify-self