This page was translated from English by the community. Learn more and join the MDN Web Docs community.
place-items
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since январь 2020 г..
* Some parts of this feature may have varying levels of support.
Сокращённое свойство CSS place-items позволяет одновременно выравнивать элементы и колонки, и ряда (т.е. по свойствам align-items и justify-items) в соответствующей системе раскладки, такой как гриды или флексбоксы. Если задано одно значение, оно используется для выравнивания и в колонке, и в ряду.
Интерактивный пример
place-items: center stretch;
place-items: center start;
place-items: start end;
place-items: end center;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
width: 220px;
}
#example-element > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
Связанные свойства
Это свойство является сокращением для следующих CSS-свойств:
Синтаксис
/* Ключевые слова */
place-items: center;
place-items: normal start;
/* Позиционное выравнивание */
place-items: center normal;
place-items: start legacy;
place-items: end normal;
place-items: self-start legacy;
place-items: self-end normal;
place-items: flex-start legacy;
place-items: flex-end normal;
place-items: left legacy;
place-items: right normal;
/* Выравнивание по базовой линии */
place-items: baseline normal;
place-items: first baseline legacy;
place-items: last baseline normal;
place-items: stretch legacy;
/* Глобальные значения */
place-items: inherit;
place-items: initial;
place-items: revert;
place-items: unset;
Значения
Записывается одним из двух способов:
- Одно значение
align-items, которое используется для определения выравнивания как колонки, так и ряда. - Значение
align-items, определяющее выравнивание колонки, после которого следует значениеjustify-items, задающее выравнивание для ряда.
Формальное определение
| Начальное значение | как и у каждого из подсвойств этого свойства:
|
|---|---|
| Применяется к | все элементы |
| Наследуется | нет |
| Обработка значения | как и у каждого из подсвойств этого свойства:
|
| Animation type | discrete |
Формальный синтаксис
place-items =
<'align-items'> <'justify-items'> ?
<align-items> =
normal |
stretch |
<baseline-position> |
<overflow-position>? <self-position> |
anchor-center
<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
Примеры
>Выравнивание элементов во флекс-контейнере
Для флекс-раскладки свойства justify-self или justify-items не применяются, поскольку элементы размещаются по главной оси, поэтому второе значение будет проигнорировано.
div > div {
box-sizing: border-box;
border: 2px solid #8c8c8c;
width: 50px;
display: flex;
align-items: center;
justify-content: center;
}
#item1 {
background-color: #8cffa0;
min-height: 30px;
font-size: 2em;
}
#item2 {
background-color: #a0c8ff;
min-height: 50px;
}
#item3 {
background-color: #ffa08c;
min-height: 40px;
}
#item4 {
background-color: #ffff8c;
min-height: 60px;
}
#item5 {
background-color: #ff8cff;
min-height: 70px;
}
#item6 {
background-color: #8cffff;
min-height: 50px;
}
select {
font-size: 16px;
}
.row {
margin-top: 10px;
}
<div id="container">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
</div>
<div class="row">
<label for="values">place-items: </label>
<select id="values">
<option value="stretch">stretch</option>
<option value="start">start</option>
<option value="center">center</option>
<option value="end">end</option>
<option value="left">left</option>
<option value="right">right</option>
<option value="auto center">auto center</option>
<option value="normal start">normal start</option>
<option value="center normal">center normal</option>
<option value="start auto">start auto</option>
<option value="end normal">end normal</option>
<option value="self-start auto">self-start auto</option>
<option value="self-end normal">self-end normal</option>
<option value="flex-start auto">flex-start auto</option>
<option value="flex-end normal">flex-end normal</option>
<option value="left auto">left auto</option>
<option value="right normal">right normal</option>
<option value="baseline normal">baseline normal</option>
<option value="first baseline auto">first baseline auto</option>
<option value="last baseline normal">last baseline normal</option>
<option value="stretch auto">stretch auto</option>
</select>
</div>
let values = document.getElementById("values");
let container = document.getElementById("container");
values.addEventListener("change", function (evt) {
container.style.placeItems = evt.target.value;
});
CSS
#container {
height: 200px;
width: 240px;
place-items: stretch; /* В выпадающем списке ниже можно изменить это значение */
background-color: #8c8c8c;
display: flex;
}
Результат
Выравнивание элементов в грид-контейнере
В следующем грид-контейнере есть элементы, которые меньше грид-области, в которой они находятся, поэтому place-items будет выравнивать их по оси колонки и оси ряда.
div > div {
box-sizing: border-box;
border: 2px solid #8c8c8c;
}
#item1 {
background-color: #8cffa0;
min-height: 30px;
font-size: 2em;
}
#item2 {
background-color: #a0c8ff;
min-height: 50px;
}
#item3 {
background-color: #ffa08c;
min-height: 40px;
}
#item4 {
background-color: #ffff8c;
min-height: 60px;
}
#item5 {
background-color: #ff8cff;
min-height: 70px;
}
#item6 {
background-color: #8cffff;
min-height: 50px;
}
select {
font-size: 16px;
}
.row {
margin-top: 10px;
}
<div id="gridcontainer">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
<div id="item4">4</div>
<div id="item5">5</div>
</div>
<div class="row">
<label for="gridvalues">place-items: </label>
<select id="gridvalues">
<option value="stretch">stretch</option>
<option value="start">start</option>
<option value="center">center</option>
<option value="end">end</option>
<option value="left">left</option>
<option value="right">right</option>
<option value="auto center">auto center</option>
<option value="normal start">normal start</option>
<option value="center normal">center normal</option>
<option value="start auto">start auto</option>
<option value="end normal">end normal</option>
<option value="self-start auto">self-start auto</option>
<option value="self-end normal">self-end normal</option>
<option value="flex-start auto">flex-start auto</option>
<option value="flex-end normal">flex-end normal</option>
<option value="left auto">left auto</option>
<option value="right normal">right normal</option>
<option value="baseline normal">baseline normal</option>
<option value="first baseline auto">first baseline auto</option>
<option value="last baseline normal">last baseline normal</option>
<option value="stretch auto">stretch auto</option>
</select>
</div>
let values = document.getElementById("gridvalues");
let container = document.getElementById("gridcontainer");
values.addEventListener("change", function (evt) {
container.style.placeItems = evt.target.value;
});
CSS
#gridcontainer {
height: 200px;
width: 240px;
place-items: stretch; /* В выпадающем списке ниже можно изменить это значение */
background-color: #8c8c8c;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
#gridcontainer > div {
width: 50px;
}
Результат
Спецификации
| Specification |
|---|
| CSS Box Alignment Module Level 3> # place-items-property> |
Совместимость с браузерами
Enable JavaScript to view this browser compatibility table.
Смотрите также
- Руководство по флексбоксу: Основные понятия Flexbox
- Руководство по флексбоксу: Выравнивание элементов во флекс-контейнере
- Руководство по гридам: Выравнивание блоков в грид-раскладке
- Выравнивание полей CSS
- Свойство
align-items - Свойство
align-self - Свойство
justify-items - Свойство
justify-self