Атрибут CSS justify-items определяет атрибут по умолчанию {{CSSxRef ("justify-self")}} для всех элементов блока, предоставляя всем им способ выравнивания по умолчанию каждого блока вдоль соответствующей оси.
Исходный код этого интерактивного примера хранится в репозитории GitHub. Если вы хотите внести свой вклад в проект интерактивных примеров, пожалуйста, создайте копию https://github.com/mdn/interactive-examples и отправьте нам запрос на включение изменений.
Эффект этого атрибута зависит от выбранного способа разметки:
- Используя разметку с помощью блоков (block-level layout), элементы выравниваются внутри содержащего их блока по внутренней оси.
- Для абсолютно позиционированых элементов выравнивание происходит внутри содержащего их блока по внутренней оси, учитывая значения смещения сверху, слева, снизу и справа.
- Используя разметку с помощью ячеек таблицы (table cell layout), этот атрибут игнорируется (подробнее о выравнивании в блочной структуре, абсолютном позиционировании и о табличной разметке).
- Используя разметку с помощью гибких или адаптивных блоков (flexbox layout), этот атрибут игнорируется (подробнее о выравнивании в разметке flexbox).
- Используя разметку с помощью сетки (grid layout), элементы выравниваются внутри их сеточной области по внутренней оси (подробнее о выравнивании в разметке grid).
Синтаксис
/* Основные ключевые слова */ justify-items: auto; justify-items: normal; justify-items: stretch; /* Выравнивание положения */ justify-items: center; /* Выровнять элементы по центру */ justify-items: start; /* Выровнять элементы в начале */ justify-items: end; /* Выровнять элементы в конце */ justify-items: flex-start; /* Эквивалентно 'start'. Обратите внимание, что justify-items игнорируется в разметке Flexbox. */ justify-items: flex-end; /* Эквивалентно 'end'. Обратите внимание, что justify-items игнорируется в разметке Flexbox. */ justify-items: self-start; justify-items: self-end; justify-items: left; /* Выровнять элементы по левому краю */ justify-items: right; /* Выровнять элементы по правому краю */ /* Исходное выравнивание */ justify-items: baseline; justify-items: first baseline; justify-items: last baseline; /* Выравнивание при переполнении (только для выравнивания положения) */ justify-items: safe center; justify-items: unsafe center; /* Унаследованное выравнивание */ justify-items: legacy right; justify-items: legacy left; justify-items: legacy center; /* Глобальные значения */ justify-items: inherit; justify-items: initial; justify-items: unset;
Этот атрибут может принимать одну из четырёх различных форм:
- Основные ключевые слова: одно из значений ключевого слова:
normal,auto, илиstretch. - Исходное выравнивание: ключевое слово
baselineплюс одно ключевое слово по выбору:firstилиlast. - Выравнивание положения: одно из ключевых слов:
center,start,end,flex-start,flex-end,self-start,self-end,left, илиright. Плюс ключевое слово по выбору:safeилиunsafe. - Унаследованное выравнивание: ключевое слово
legacy, за которым следует ключевое словоleftилиright.
Значения
auto- Используемое значение является значением атрибута
justify-itemsродительского блока. Если у блока нет родительского элемента или он абсолютно спозиционирован, то в этих случаях значениеautoпредставляет собой значениеnormal. normal- Эффект этого атрибута зависит от выбранного способа разметки:
- Используя разметку с помощью блоков (block-level layout), это ключевое слово является синонимом слова
start - Для разметки с абсолютно позиционированный элементами, это ключевое слово ведёт себя как
startна заменённых блоках с абсолютным позиционированием и какstretchна всех остальных блоках с абсолютным позиционированием - Используя разметку с помощью ячеек таблицы (table cell layout), это ключевое слово не имеет значения, так как этот атрибут игнорируется
- Используя разметку с помощью гибких блоков (flexbox layout), это ключевое слово не имеет значения, так как этот атрибут игнорируется
- Используя разметку с помощью сетки (grid layout), это ключевое слово приводит к поведению, аналогичному поведению
stretch, за исключением блоков с соотношением сторон или внутренних размеров, где оно ведёт себя какstart
- Используя разметку с помощью блоков (block-level layout), это ключевое слово является синонимом слова
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илиlast baselineв исходном выравнивании. Значениеbaselineвыравнивает первый или последний блок набора в соответствии с исходным выравниванием в общем первом или последнем наборе всех блоков в его совместной группе исходного выравнивания. - Возвратным выравниванием для
first baselineявляется значениеstart, дляlast baselineявляется значениеend. stretch- Если объединённый размер элементов меньше, чем размер контейнера выравнивания, то размер любого элемента со значением
autoувеличивается одинаково (не пропорционально), но при этом соблюдаются ограничения, налагаемые {{CSSxRef("max-height")}}/{{CSSxRef("max-width")}} (или эквивалентной функциональностью), таким образом, что объединённый размер точно заполняет контейнер выравнивания. safe- Если размер элемента выходит за пределы контейнера выравнивания, элемент выравнивается, как если бы режим выравнивания имел значение
start. unsafe- Независимо от относительных размеров элемента и контейнера выравнивания, данное значение выравнивания учитывается.
legacy- Создаёт значение, унаследованное потомками блока. Обратите внимание, что если потомок имеет значение
justify-self: auto, ключевое словоlegacyне учитывается по нисходящему наследованию. Действует только со значениемleft,right, илиcenter, связанным с ним.
Формальный синтаксис
{{CSSSyntax}}Спецификации
| Спецификация | Статус | Комментарий |
|---|---|---|
| {{SpecName("CSS3 Box Alignment", "#propdef-justify-items", "justify-items")}} | {{Spec2("CSS3 Box Alignment")}} | Первоначальное определение |
{{CSSInfo}}
Поддержка браузерами
Поддержка в разметке Flex
{{Compat}}
Поддержка в разметке Grid
{{Compat("css.properties.justify-items.grid_context")}}
Смотрите также
- CSS Руководство по Grid: Выравнивание блоков в разметке Grid
- CSS Выравнивание блоков
- Сокращённый атрибут {{CSSxRef("place-items")}}
- Атрибут {{CSSxRef("justify-self")}}
- Атрибут {{CSSxRef("align-items")}}