Перейти к содержимому

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
Синтаксис DOMelement.style.gridArea = "1 / 2 / span 2 / span 3";

Синтаксис

css
grid-area: <grid-line> / <grid-line> / <grid-line> / <grid-line> | <custom-ident> | initial | inherit;

Примечание: Сокращённая запись принимает от 1 до 4 значений. Если указано меньше 4 значений, отсутствующие значения по умолчанию принимают auto. Для конечных значений можно использовать ключевое слово span (например, span 2).

Пример

html
<!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>Вы можете использовать свойство grid-area для именования элементов сетки.</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>

Результат

CSS grid-area Property

В следующем примере элементу box1 присваивается значение itemname, которое охватывает все пять столбцов, определённых в шаблоне сетки. Обратите внимание, что поскольку сетка определяет только 5 столбцов, оставшиеся элементы автоматически переходят на следующую строку (неявное размещение в сетке).

Пример со значением itemname

html
<!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 <число> или auto.
custom-identУказывает имя для элемента (используется с grid-template-areas).
initialУстанавливает свойству его значение по умолчанию.
inheritНаследует свойство от родительского элемента.

Практика

Какова цель свойства CSS 'grid-area'?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.