grid
Базовая линия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с октября 2017 года.
Свойство grid CSS — это сокращенное свойство, которое задаёт все явные и неявные свойства сетки в одном объявлении.
Используя grid вы задаёте одну ось с помощью grid-template-rows или grid-template-columns, а затем задаёте, как содержимое должно автоматически повторяться в другой оси, используя неявные свойства сетки: grid-auto-rows, grid-auto-columns и grid-auto-flow.
Попробовать
Примечание: Подсвойства, которые вы не указываете, устанавливаются в их начальное значение, как это обычно делается для сокращённых свойств. Кроме того, свойства отступов НЕ сбрасываются этим сокращённым свойством.
Составные свойства
Это свойство является сокращением следующих свойств CSS:
Синтаксис
/* <'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 =
<'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 |
См. также
© 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