justify-items
Базовое выравнивание Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Свойство CSS justify-items задаёт значение по умолчанию для justify-self всех элементов в контейнере, обеспечивая стандартное выравнивание каждого элемента по соответствующей оси.
Попробовать
Результат действия свойства зависит от режима макета:
- В блочных макетах выравнивание элементов происходит по оси inline внутри их родительского блока.
- Для абсолютно позиционированных элементов выравнивание элементов происходит по оси inline внутри их родительского блока, учитывая смещения, заданные свойствами top, left, bottom и right.
- В макетах таблиц это свойство игнорируется (подробнее о выравнивании в блочных, абсолютно позиционированных и табличных макетах)
- В макетах Flexbox это свойство игнорируется (подробнее о выравнивании в макетах Flexbox)
- В макетах Grid выравнивание элементов происходит по оси inline внутри их областей сетки (подробнее о выравнивании в макетах Grid)
Синтаксис
/* Basic keywords */ justify-items: normal; justify-items: stretch; /* Positional alignment */ justify-items: center; /* Pack items around the center */ justify-items: start; /* Pack items from the start */ justify-items: end; /* Pack items from the end */ justify-items: flex-start; /* Equivalent to 'start'. Note that justify-items is ignored in flexbox layouts. */ justify-items: flex-end; /* Equivalent to 'end'. Note that justify-items is ignored in flexbox layouts. */ justify-items: self-start; justify-items: self-end; justify-items: left; /* Pack items from the left */ justify-items: right; /* Pack items from the right */ justify-items: anchor-center; /* Baseline alignment */ justify-items: baseline; justify-items: first baseline; justify-items: last baseline; /* Overflow alignment (for positional alignment only) */ justify-items: safe center; justify-items: unsafe center; /* Legacy alignment */ justify-items: legacy right; justify-items: legacy left; justify-items: legacy center; /* Global values */ justify-items: inherit; justify-items: initial; justify-items: revert; justify-items: revert-layer; justify-items: unset;
Это свойство может принимать одну из четырёх форм:
- Ключевые слова: одно из ключевых слов
normalилиstretch. - Выравнивание по базовой линии: ключевое слово
baseline, и опционально одно изfirstилиlast. - Позиционное выравнивание: одно из
center,start,end,flex-start,flex-end,self-start,self-end,left, илиright. Опциональноsafeилиunsafe. - Устаревшее выравнивание: ключевое слово
legacyи одно изleftилиright.
Значения
normal-
Действие этого ключевого слова зависит от режима макета:
- В блочных макетах оно является синонимом
start. - В абсолютно позиционированных макетах оно ведёт себя как
startдля замещающих абсолютно позиционированных блоков и какstretchдля всех остальных абсолютно позиционированных блоков. - В макетах таблиц это ключевое слово не имеет значения, так как свойство игнорируется.
- В макетах Flexbox это ключевое слово не имеет значения, так как свойство игнорируется.
- В макетах Grid это ключевое слово приводит к поведению, аналогичному
stretch, за исключением элементов с соотношением сторон или заданными внутренними размерами, где оно ведет себя какstart.
- В блочных макетах оно является синонимом
start-
Элемент прижимается к началу области выравнивания на соответствующей оси.
end-
Элемент прижимается к концу области выравнивания на соответствующей оси.
flex-start-
Для элементов, которые не являются потомками контейнера Flexbox, это значение обрабатывается как
start. flex-end-
Для элементов, которые не являются потомками контейнера Flexbox, это значение обрабатывается как
end. self-start-
Элемент прижимается к началу области выравнивания для текущего элемента по соответствующей оси.
self-end-
Элемент прижимается к концу области выравнивания для текущего элемента по соответствующей оси.
center-
Элементы выравниваются по центру области выравнивания.
left-
Элементы выравниваются по левому краю области выравнивания. Если ось свойства не параллельна оси inline, это значение ведет себя как
start. right-
Элементы выравниваются по правому краю области выравнивания по соответствующей оси. Если ось свойства не параллельна оси inline, это значение ведет себя как
start. -
baseline,first baseline,last baseline -
Участвует в выравнивании по первой или последней базовой линии: выравнивает базовую линию первого или последнего набора базовых линий элемента с соответствующей базовой линией в общем первом или последнем наборе базовых линий всех элементов в группе совместного использования базовых линий. Значение по умолчанию для
first baseline-start, дляlast baseline-end. stretch-
Если общий размер элементов меньше размера контейнера выравнивания, любые элементы с размером
autoувеличивают свой размер равномерно (а не пропорционально), но при этом учитывая ограниченияmax-height/max-width(или аналогичную функциональность), чтобы общий размер точно заполнил контейнер выравнивания. anchor-center-
В случае элементов с привязкой выравнивает элементы по центру связанного якоря по оси inline. См. Выравнивание по центру якоря с помощью
anchor-center. safe-
Если размер элемента выходит за пределы контейнера выравнивания, элемент выравнивается так, как если бы режим выравнивания был
start. unsafe-
Независимо от относительных размеров элемента и контейнера выравнивания, заданное значение выравнивания сохраняется.
legacy-
Делает значение наследуемым для дочерних элементов. Обратите внимание, что если у потомка есть значение
justify-self: auto, то ключевое словоlegacyне учитывается для потомка, а учитываются только значенияleft,rightилиcenter.
Формальное определение
| Начальное значение | legacy |
|---|---|
| Применимо к | все элементы |
| Наследуется | нет |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
justify-items =
normal |
stretch |
<baseline-position> |
<overflow-position>? [ <self-position> | left | right ] |
legacy |
legacy && [ left | right | center ] |
anchor-center
<baseline-position> =
[ first | last ]? &&
baseline
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
Примеры
Простой пример
В следующем примере представлен простой макет сетки 2x2. Изначально контейнеру сетки задано значение justify-items stretch (значение по умолчанию), что приводит к растягиванию элементов сетки на всю ширину ячеек.
При наведении или нажатии клавиши Tab на контейнер сетки ему задается значение justify-items center, что приводит к тому, что элементы сетки занимают только ширину своего содержимого и выравниваются по центру своих ячеек.
HTML
<article class="container" tabindex="0"> <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;
}
article:hover,
article:focus {
justify-items: center;
}
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 for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
justify-items |
52 | 12 | 20 | 12.1 | 9 | 52 | 20 | 12.1 | 9 | 6.0 | 52 |
anchor-center |
125 | 125 | Нет | 111 | Нет | 125 | Нет | 83 | Нет | 27.0 | 125 |
flex_context |
52 | 12 | 20 | 12.1 | 9 | 52 | 20 | 12.1 | 9 | 6.0 | 52 |
grid_context |
57 | 16 | 45 | 44 | 10.1 | 57 | 45 | 43 | 10.3 | 6.0 | 57 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items