CSS-свойство grid-area
Свойство CSS grid-area определяет размер и расположение элементов в строках грид-контейнера. Смотрите примеры и пробуйте их.
Свойство grid-area используется для задания размера и расположения грид-элемента внутри грид-контейнера. Это сокращённое свойство для следующих свойств, применяемых в порядке: row-start, column-start, row-end, column-end:
- grid-row-start — задаёт строку, с которой начинается элемент.
- grid-column-start — задаёт столбец, с которого начинается элемент.
- grid-row-end — задаёт строку, на которой заканчивается элемент.
- grid-column-end — задаёт столбец, на котором заканчивается элемент.
Свойство grid-area также позволяет задать имя грид-элементу. Именованные грид-элементы затем можно использовать в свойстве grid-template-areas грид-контейнера.
| Начальное значение | auto / auto / auto / auto |
|---|---|
| Применяется к | Грид-элементам. |
| Наследуется | Нет. |
| Анимируется | Нет. |
| Версия | CSS Grid Layout Module Level 1 |
| DOM-синтаксис | element.style.gridArea = "1 / 2 / span 2 / span 3"; |
Синтаксис
grid-area: <grid-line> / <grid-line> / <grid-line> / <grid-line> | <custom-ident> | initial | inherit;Примечание: сокращённое свойство принимает от 1 до 4 значений. Если задано менее 4 значений, недостающие принимают значение
auto. Для конечных значений можно использовать ключевое словоspan(например,span 2).
Пример
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
grid-area: header;
}
.box2 {
grid-area: left;
}
.box3 {
grid-area: main;
}
.box4 {
grid-area: right;
}
.box5 {
grid-area: footer;
}
.grid-container {
display: grid;
grid-template-areas: 'header header header header header header' 'left main main main right right' 'left footer footer footer footer footer';
gap: 5px;
background-color: #555;
padding: 10px;
}
.grid-container > div {
background-color: #ccc;
text-align: center;
padding: 30px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h2>Grid-area property example</h2>
<p>You can use the grid-area property to name grid items.</p>
<div class="grid-container">
<div class="box1">Header</div>
<div class="box2">Left</div>
<div class="box3">Main</div>
<div class="box4">Right</div>
<div class="box5">Footer</div>
</div>
</body>
</html>Результат

В следующем примере элементу box1 присвоено значение itemname, которое охватывает все пять столбцов, определённых в шаблоне сетки. Обратите внимание: поскольку сетка содержит только 5 столбцов, остальные элементы автоматически переходят на следующую строку (неявное размещение в сетке).
Также можно размещать элемент по номерам линий сетки, а не по имени. Четыре значения задаются в порядке row-start / column-start / row-end / column-end, а ключевое слово span указывает, сколько треков должен занять элемент. В примере ниже grid-area: 1 / 1 / 3 / 3; размещает элемент начиная с первой строки и первого столбца и заканчивая третьей линией строки и третьей линией столбца, то есть элемент занимает область 2×2.
Пример с номерами линий сетки
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
/* row-start / column-start / row-end / column-end */
grid-area: 1 / 1 / 3 / 3;
background-color: #8ebf42;
}
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 60px;
gap: 5px;
background-color: #555;
padding: 5px;
}
.grid-container > div {
background-color: #eee;
text-align: center;
font-size: 20px;
}
</style>
</head>
<body>
<h2>Placing an item with line numbers</h2>
<div class="grid-container">
<div class="box1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>
</body>
</html>Пример со значением itemname
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
grid-area: itemname;
}
.grid-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-areas: 'itemname itemname itemname itemname itemname';
gap: 5px;
background-color: #8ebf42;
padding: 5px;
}
.grid-container > div {
background-color: #eee;
text-align: center;
padding: 20px 0;
font-size: 20px;
}
</style>
</head>
<body>
<h2>Grid-area property example</h2>
<div class="grid-container">
<div class="box1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
</body>
</html>Значения
| Значение | Описание |
|---|---|
<grid-line> | Задаёт линию сетки, на которой элемент начинается или заканчивается. Принимает число, span <number> или auto. |
custom-ident | Задаёт имя для элемента (используется вместе с grid-template-areas). |
initial | Устанавливает свойство в значение по умолчанию. |
inherit | Наследует свойство от родительского элемента. |