Свойство CSS `grid-area`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с октября 2017 года.
Сокращённое свойство grid-area в CSS задаёт размер и положение элемента сетки внутри сетки, добавляя к его размещению в сетке линию, интервал или ничего (автоматическое размещение), тем самым задавая границы его области сетки.
Попробуйте
grid-area: a;
grid-area: b;
grid-area: c;
grid-area: 2 / 1 / 2 / 4;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">Example</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: repeat(3, minmax(40px, auto));
grid-template-areas:
"a a a"
"b c c"
"b c c";
grid-gap: 10px;
width: 200px;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
#example-element {
background-color: rgb(255 0 200 / 0.2);
border: 3px solid rebeccapurple;
}
Если указано четыре значения <grid-line>, grid-row-start принимает первое значение, grid-column-start — второе, grid-row-end — третье, а grid-column-end — четвёртое.
Если grid-column-end не указано, и grid-column-start — это <custom-ident>, то grid-column-end принимает это значение <custom-ident>; в противном случае ему присваивается auto.
Если grid-row-end не указано, и grid-row-start — это <custom-ident>, то grid-row-end принимает это значение <custom-ident>; в противном случае ему присваивается auto.
Если grid-column-start не указано, и grid-row-start — это <custom-ident>, все четыре длинных свойства принимают это значение. В противном случае ему присваивается auto.
Свойству grid-area также можно задать значение <custom-ident>, которое служит именем области. Затем её можно разместить с помощью grid-template-areas.
Составные свойства
Это свойство является сокращением для следующих свойств CSS:
Синтаксис
/* Keyword values */ grid-area: auto; grid-area: auto / auto; grid-area: auto / auto / auto; grid-area: auto / auto / auto / auto; /* <custom-ident> values */ grid-area: some-grid-area; grid-area: some-grid-area / another-grid-area; /* <integer> && <custom-ident>? values */ grid-area: 4 some-grid-area; grid-area: 4 some-grid-area / 2 another-grid-area; /* span && [ <integer> || <custom-ident> ] values */ grid-area: span 3; grid-area: span 3 / span some-grid-area; grid-area: 2 span / another-grid-area span; /* Global values */ grid-area: inherit; grid-area: initial; grid-area: revert; grid-area: revert-layer; grid-area: unset;
Значения
-
auto - Ключевое слово, указывающее, что свойство не влияет на размещение элемента сетки и означает автоматическое размещение или интервал по умолчанию в
1. -
<custom-ident> -
Если существует именованная линия с именем
<custom-ident>-startили<custom-ident>-end, она добавляет первую такую линию к размещению элемента сетки.Примечание: Именованные области сетки автоматически создают неявные именованные линии этого вида, поэтому указание
grid-area: foo;выберет начальную/конечную границу этой именованной области сетки (если перед ней явно не была указана другая линия с именемfoo-start/foo-end).В противном случае это обрабатывается так, как если бы вместе с
<custom-ident>было указано целое число1. -
<integer> && <custom-ident>? -
Добавляет к размещению элемента сетки n-ю линию сетки. Если задано отрицательное целое число, отсчёт ведётся в обратном направлении, начиная с конечной границы явной сетки.
Если имя задано как
<custom-ident>, учитываются только линии с этим именем. Если линий с таким именем недостаточно, для поиска этой позиции предполагается, что все неявные линии сетки имеют это имя.Значение
<integer>0недопустимо. -
span && [ <integer> || <custom-ident> ] -
Добавляет интервал сетки к размещению элемента сетки так, чтобы соответствующая граница его области сетки находилась на расстоянии n линий от противоположной границы.
Если имя задано как
<custom-ident>, учитываются только линии с этим именем. Если линий с таким именем недостаточно, для подсчёта этого интервала предполагается, что все неявные линии сетки со стороны явной сетки, соответствующей направлению поиска, имеют это имя.Если
<integer>не указано, по умолчанию используется1. Отрицательные целые числа и 0 недопустимы.
Формальное определение
| Исходное значение | как у каждого из свойств, входящих в сокращение: |
|---|---|
| Применяется к | элементам сетки и абсолютно позиционированным блокам, содержащий блок которых является контейнером сетки |
| Наследуется | нет |
| Вычисленное значение | как у каждого из свойств, входящих в сокращение: |
| Тип анимации | дискретный |
Формальный синтаксис
grid-area = <grid-line> [ / <grid-line> ]{0,3} <grid-line> = auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ] <integer> = <number-token>
Примеры
Задание областей сетки
HTML
<div id="grid"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> </div>
CSS
#grid {
display: grid;
height: 100px;
grid-template: repeat(4, 1fr) / 50px 100px;
}
#item1 {
background-color: lime;
grid-area: 2 / 2 / auto / span 3;
}
#item2 {
background-color: yellow;
}
#item3 {
background-color: blue;
}
Результат
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
grid-area |
57 |
16 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
6.0 |
57 |
10.3 |
auto |
57 |
16 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
7.0 |
57 |
10.3 |
См. также
grid-rowgrid-row-startgrid-row-endgrid-columngrid-column-startgrid-column-endgrid-template-areas- Именованные области шаблона сетки
- Видео: Именованные области шаблона сетки
© 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/grid-area