CSS-свойство `place-items`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.
place-items — это CSS-сокращённое свойство, которое одновременно выравнивает элементы по блочному и строчному направлениям.
Попробуйте
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: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Составные свойства
Это свойство является сокращённой записью следующих свойств CSS:
Синтаксис
/* Positional alignment */ 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: anchor-center; /* Baseline alignment */ place-items: baseline normal; place-items: first baseline legacy; place-items: last baseline normal; place-items: stretch legacy; /* Global values */ place-items: inherit; place-items: initial; place-items: revert; place-items: revert-layer; place-items: unset;
Значения
Для этого свойства указываются одно или два значения, разделённые пробелом, следующих типов и в указанном порядке:
-
align-items - Задаёт выравнивание по блочному направлению.
-
justify-itemsНеобязательно - Задаёт выравнивание по строчному направлению. Если значение не указано, используется значение
align-items.
Описание
Сокращённое свойство place-items задаёт align-items и justify-items в одном объявлении, выравнивая элементы одновременно по блочному и строчному направлениям.
Если указано только одно значение, оно задаёт выравнивание и по блочному, и по строчному направлениям. Если указаны два значения, первое задаёт значение свойства align-items и выравнивание по блочному направлению, а второе — значение свойства justify-items и выравнивание по строчному направлению.
Формальное определение
| Начальное значение | как у каждого из сокращённых свойств: |
|---|---|
| Применяется к | ко всем элементам |
| Наследуется | нет |
| Вычисленное значение | как у каждого из сокращённых свойств: |
| Тип анимации | дискретный |
Формальный синтаксис
place-items =
<'align-items'> <'justify-items'>?
Примеры
Размещение элементов во flex-контейнере
Во flexbox свойства 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>
const values = document.getElementById("values");
const container = document.getElementById("container");
values.addEventListener("change", (evt) => {
container.style.placeItems = evt.target.value;
});
CSS
#container {
height: 200px;
width: 240px;
place-items: stretch; /* You can change this value by selecting another option in the list */
background-color: #8c8c8c;
display: flex;
}
Результат
Размещение элементов в grid-контейнере
В следующем grid-контейнере элементы меньше областей сетки, в которые они помещены, поэтому 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="grid-container">
<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="grid-values">place-items: </label>
<select id="grid-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>
const values = document.getElementById("grid-values");
const container = document.getElementById("grid-container");
values.addEventListener("change", (evt) => {
container.style.placeItems = evt.target.value;
});
CSS
#grid-container {
height: 200px;
width: 240px;
place-items: stretch; /* You can change this value by selecting another option in the list */
background-color: #8c8c8c;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
#grid-container > div {
width: 50px;
}
Результат
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
place-items |
59 |
79 |
45 |
46 |
11 |
59 |
45 |
43 |
11 |
7.0 |
59 |
11 |
anchor-center |
125 |
125 |
147 |
111 |
26 |
125 |
147 |
83 |
26 |
27.0 |
125 |
26 |
flex_context |
59 |
79 |
45 |
46 |
11 |
59 |
45 |
43 |
11 |
7.0 |
59 |
11 |
grid_context |
59 |
79 |
45 |
46 |
11 |
59 |
45 |
43 |
11 |
7.0 |
59 |
11 |
См. также
align-itemsalign-selfjustify-itemsjustify-self- Основные понятия flexbox
- Выравнивание элементов во flex-контейнере
- Выравнивание блоков в grid-макете
- Выравнивание блоков CSS module
© 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/place-items