Spec-Zone.ru › CSS

grid

Базовая линия Широко доступна

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

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

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

Попробовать

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

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

Это свойство является сокращением следующих свойств 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, [line1 line2 line3] 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, [line1 line2 line3] 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: none
  • grid-template-columns: none
  • grid-template-areas: none
  • grid-auto-rows: auto
  • grid-auto-columns: auto
  • grid-auto-flow: row
  • grid-column-gap: 0
  • grid-row-gap: 0
  • column-gap: normal
  • row-gap: normal
Применяется к контейнерам сетки
Наследуется нет
Проценты как каждое из свойств сокращенного свойства:
  • 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: как указано, с <length> сделаны абсолютными, и обычное вычисление до нуля, за исключением многоколоночных элементов
  • row-gap: как указано, с <length> сделаны абсолютными, и обычное вычисление до нуля, за исключением многоколоночных элементов
Тип анимации как каждое из свойств сокращенного свойства:
  • grid-template-rows: простой список длины, процента или calc, при условии, что единственные различия заключаются в значениях компонентов длины, процента или calc в списке
  • grid-template-columns: простой список длины, процента или calc, при условии, что единственные различия заключаются в значениях компонентов длины, процента или calc в списке
  • grid-template-areas: дискретно
  • grid-auto-rows: по типу вычисленного значения
  • grid-auto-columns: по типу вычисленного значения
  • grid-auto-flow: дискретно
  • grid-column-gap: длина
  • grid-row-gap: длина
  • column-gap: длина, процент или calc();
  • row-gap: длина, процент или calc();

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

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

<grid-template> =
none |
[ <'grid-template-rows'> / <'grid-template-columns'> ] |
[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?

<grid-template-rows> =
none |
<track-list> |
<auto-track-list> |
subgrid <line-name-list>?

<grid-auto-columns> =
<track-size>+

<grid-auto-rows> =
<track-size>+

<grid-template-columns> =
none |
<track-list> |
<auto-track-list> |
subgrid <line-name-list>?

<line-names> =
'[' <custom-ident>* ']'

<track-size> =
<track-breadth> |
minmax( <inflexible-breadth> , <track-breadth> ) |
fit-content( <length-percentage [0,∞]> )

<explicit-track-list> =
[ <line-names>? <track-size> ]+ <line-names>?

<track-list> =
[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?

<auto-track-list> =
[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?

<line-name-list> =
[ <line-names> | <name-repeat> ]+

<track-breadth> =
<length-percentage [0,∞]> |
<flex [0,∞]> |
min-content |
max-content |
auto

<inflexible-breadth> =
<length-percentage [0,∞]> |
min-content |
max-content |
auto

<length-percentage> =
<length> |
<percentage>

<track-repeat> =
repeat( [ <integer [1,∞]> ] , [ <line-names>? <track-size> ]+ <line-names>? )

<fixed-size> =
<fixed-breadth> |
minmax( <fixed-breadth> , <track-breadth> ) |
minmax( <inflexible-breadth> , <fixed-breadth> )

<fixed-repeat> =
repeat( [ <integer [1,∞]> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )

<auto-repeat> =
repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )

<name-repeat> =
repeat( [ <integer [1,∞]> | auto-fill ] , <line-names>+ )

<fixed-breadth> =
<length-percentage [0,∞]>

Примеры

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

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 Module Level 2
# grid-shorthand

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
grid 57 16 52 44 10.1 57 52 43 10.3
6.0Это было добавлено рано, поэтому не синхронизировано с эквивалентной версией Chromium.
57

См. также

  • grid-template
  • grid-template-rows
  • grid-template-columns
  • grid-template-areas
  • grid-auto-columns
  • grid-auto-rows
  • grid-auto-flow
  • Размещение на основе линий с помощью CSS сетки
  • Области сетки шаблона: сокращения определений сетки

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/grid

Spec-Zone.ru

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