W3docs

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>

Результат

CSS grid-area Property

В следующем примере элементу 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Наследует свойство от родительского элемента.

Практика

Практика
Какова цель CSS-свойства 'grid-area'?
Какова цель CSS-свойства 'grid-area'?
Was this page helpful?