Spec-Zone.ru › CSS

CSS-свойство `grid`

Базовая поддержка Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она поддерживается браузерами с октября 2017 года.

grid — CSS-свойство сокращённой записи, которое задаёт все явные и неявные свойства сетки в одном объявлении.

С помощью grid вы задаёте одну ось с помощью grid-template-rows или grid-template-columns, а затем задаёте, как содержимое должно автоматически повторяться по другой оси, используя свойства неявной сетки: grid-auto-rows, grid-auto-columns и grid-auto-flow.

Попробуйте

grid: auto-flow / 1fr 1fr 1fr;
grid: auto-flow dense / 40px 40px 1fr;
grid: repeat(3, 80px) / auto-flow;
<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-gap: 10px;
  width: 200px;
}

#example-element :nth-child(1) {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
}

#example-element :nth-child(2) {
  background-color: rgb(255 0 200 / 0.2);
  border: 3px solid rebeccapurple;
  grid-column: auto / span 3;
  grid-row: auto / span 2;
}

#example-element :nth-child(3) {
  background-color: rgb(94 255 0 / 0.2);
  border: 3px solid green;
  grid-column: auto / span 2;
}

Примечание: Неуказанные под-свойства получают начальные значения, как обычно для сокращённых свойств. Кроме того, свойства промежутков НЕ сбрасываются этим сокращённым свойством.

Составные свойства

Это свойство является сокращённой записью следующих свойств CSS:

  • grid-auto-columns
  • grid-auto-flow
  • grid-auto-rows
  • grid-template-areas
  • grid-template-columns
  • grid-template-rows

Синтаксис

/* <'grid-template'> values */
grid: none;
grid: "a" 100px "b" 1fr;
grid: [line-name1] "a" 100px [line-name2];
grid: "a" 200px "b" min-content;
grid: "a" minmax(100px, max-content) "b" 20%;
grid: 100px / 200px;
grid: minmax(400px, min-content) / repeat(auto-fill, 50px);

/* <'grid-template-rows'> /
   [ auto-flow && dense? ] <'grid-auto-columns'>? values */
grid: 200px / auto-flow;
grid: 30% / auto-flow dense;
grid: repeat(3, 200px) / auto-flow 300px;
grid: [line1] minmax(20em, max-content) / auto-flow dense 40%;

/* [ auto-flow && dense? ] <'grid-auto-rows'>? /
   <'grid-template-columns'> values */
grid: auto-flow / 200px;
grid: auto-flow dense / 30%;
grid: auto-flow 300px / repeat(3, 200px);
grid: auto-flow dense 40% / [line1] minmax(20em, max-content);

/* Global values */
grid: inherit;
grid: initial;
grid: revert;
grid: revert-layer;
grid: unset;

Значения

<'grid-template'>
Задаёт grid-template, включая grid-template-columns, grid-template-rows и grid-template-areas.
<'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?

Настраивает автоматическое заполнение: явно задаёт строки сетки с помощью свойства grid-template-rows (а свойству grid-template-columns задаёт значение none) и указывает, как автоматически повторять столбцы сетки с помощью grid-auto-columns (а свойству grid-auto-rows задаёт значение auto). Соответствующим образом задаётся и grid-auto-flow, которому присваивается значение column, с dense, если оно указано.

Все остальные под-свойства grid сбрасываются до начальных значений.

[ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>

Настраивает автоматическое заполнение: явно задаёт столбцы сетки с помощью свойства grid-template-columns (а свойству grid-template-rows задаёт значение none) и указывает, как автоматически повторять строки сетки с помощью grid-auto-rows (а свойству grid-auto-columns задаёт значение auto). Соответствующим образом задаётся и grid-auto-flow, которому присваивается значение row, с dense, если оно указано.

Все остальные под-свойства grid сбрасываются до начальных значений.

Формальное определение

Начальное значение как у каждого из свойств сокращённой записи:
  • grid-template-rows
  • grid-template-columns
  • grid-template-areas
  • grid-auto-rows
  • grid-auto-columns
  • grid-auto-flow
  • grid-column-gap
  • grid-row-gap
  • column-gap
  • row-gap
Применяется к контейнерам сетки
Наследуется нет
Проценты как у каждого из свойств сокращённой записи:
  • grid-template-rows
  • grid-template-columns
  • grid-auto-rows
  • grid-auto-columns
Вычисленное значение как у каждого из свойств сокращённой записи:
  • grid-template-rows
  • grid-template-columns
  • grid-template-areas
  • grid-auto-rows
  • grid-auto-columns
  • grid-auto-flow
  • grid-column-gap
  • grid-row-gap
  • column-gap
  • row-gap
Тип анимации как у каждого из свойств сокращённой записи:
  • grid-template-rows
  • grid-template-columns
  • grid-template-areas
  • grid-auto-rows
  • grid-auto-columns
  • grid-auto-flow
  • grid-column-gap
  • grid-row-gap
  • column-gap
  • row-gap

Формальный синтаксис

grid = 
  <'grid-template'> |
  <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? |
  [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>

Примеры

Создание макета сетки

HTML

<div id="container">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

CSS

#container {
  display: grid;
  grid: repeat(2, 60px) / auto-flow 80px;
}

#container > div {
  background-color: #8ca0ff;
  width: 50px;
  height: 50px;
}

Результат

Спецификации

Спецификация
Модуль CSS Grid Layout, уровень 2
# grid-shorthand

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
grid
57
16
52
44
10.1
57
52
43
10.3
6.0Эта функция была добавлена раньше, поэтому её версия не синхронизирована с соответствующей версией Chromium.
57
10.3
none
57
16
52
44
10.1
57
52
43
10.3
7.0
57
10.3

См. также

  • grid-template
  • grid-template-rows
  • grid-template-columns
  • grid-template-areas
  • grid-auto-columns
  • grid-auto-rows
  • grid-auto-flow
  • Размещение по линиям в CSS Grid
  • Именованные области сетки: сокращённые записи для определения сетки

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API