grid
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since окÑÑбÑÑ 2017 г..
ÐбÑие ÑведениÑ
СвойÑÑво CSS grid ÑвлÑеÑÑÑ ÑокÑаÑÑнной ÑоÑмой запиÑи, коÑоÑÐ°Ñ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²ÑеÑ
ÑвнÑÑ
ÑвойÑÑв ÑеÑки (grid) (grid-template-rows, grid-template-columns, и grid-template-areas), вÑеÑ
неÑвнÑÑ
ÑвойÑÑв ÑеÑки (grid) (grid-auto-rows, grid-auto-columns, и grid-auto-flow), и ÑвойÑÑв Ð´Ð»Ñ Ð¿ÑомежÑÑков Ð¼ÐµÐ¶Ð´Ñ ÑÑдами и ÑÑолбÑами ÑеÑки (grid-column-gap и grid-row-gap) в одной ÑÑÑоÑке.
ÐÑимеÑание: Родной ÑÑÑоке grid могÑÑ Ð±ÑÑÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ ÑвойÑÑва ÑолÑко одного вида: ÑвнÑе или неÑвнÑе. ÐодÑвойÑÑва, коÑоÑÑе не бÑли опиÑанÑ, пÑинимаÑÑ, как и в дÑÑÐ³Ð¸Ñ ÑокÑаÑÑннÑÑ ÑоÑÐ¼Ð°Ñ Ð·Ð°Ð¿Ð¸Ñи ÑвойÑÑв, знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐÑоме Ñого, пÑи помоÑи ÑокÑаÑÑнной ÑоÑÐ¼Ñ Ð·Ð°Ð¿Ð¸Ñи знаÑÐµÐ½Ð¸Ñ ÑвойÑÑв Ð´Ð»Ñ Ð¿ÑомежÑÑков Ð¼ÐµÐ¶Ð´Ñ ÑÑдами и ÑÑолбÑами ÑеÑки по ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑаÑÑваÑÑÑÑ, неÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо они не могÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑокÑаÑÑнной ÑоÑме запиÑи.
| ÐаÑалÑное знаÑение | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
|---|---|
| ÐÑименÑеÑÑÑ Ðº | ÑеÑоÑнÑе конÑейнеÑÑ |
| ÐаÑледÑеÑÑÑ | Ð½ÐµÑ |
| ÐÑоÑенÑÑ | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
| ÐбÑабоÑка знаÑÐµÐ½Ð¸Ñ | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
| Animation type | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
СинÑакÑиÑ
/* <'grid-template'> знаÑениÑ*/
grid: none;
grid: "a" 100px "b" 1fr;
grid: [linename1] "a" 100px [linename2];
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: unset;
ÐнаÑениÑ
<'grid-template'>-
ÐпÑеделÑеÑ
grid-template(Ñаблон ÑеÑки) вклÑÑаÑgrid-template-columns(ÑÑолбÑÑ),grid-template-rows(ÑÑдÑ) иgrid-template-areas(облаÑÑи). <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?-
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ auto-flow Ñвно Ð·Ð°Ð´Ð°Ð²Ð°Ñ ÑазмеÑение по ÑÑдам Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑвойÑÑва
grid-template-rows(и ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ ÑвойÑÑвоgrid-template-columnsв знаÑениеnone) и ÑÑоÑнÑеÑ, как должно ÑабоÑаÑÑ Ð°Ð²Ñо-повÑоÑение ÑÑолбÑов пÑи помоÑи ÑвойÑÑваgrid-auto-columns(и ÑÑÑанавливаÑgrid-auto-rowsв знаÑениеauto). СвойÑÑвоgrid-auto-flowÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñак же ÑÑÑановлено Ð´Ð»Ñ ÑÑолбÑов Ñо ÑвойÑÑвомdenseеÑли оно опÑеделено.ÐÑе оÑÑалÑнÑе подÑвойÑÑва grid ÑбÑаÑÑваÑÑÑÑ Ð² Ð¸Ñ Ð½Ð°ÑалÑнÑе знаÑÐµÐ½Ð¸Ñ . [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>-
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ auto-flow Ñвно Ð·Ð°Ð´Ð°Ð²Ð°Ñ ÑазмеÑение по ÑÑолбÑам Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑвойÑÑва
grid-template-columns(и ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°Ñ ÑвойÑÑвоgrid-template-rowsв знаÑениеnone) и ÑÑоÑнÑеÑ, как должно ÑабоÑаÑÑ Ð°Ð²Ñо-повÑоÑение ÑÑдов пÑи помоÑи ÑвойÑÑваgrid-auto-rows(и ÑÑÑанавливаÑgrid-auto-columnsв знаÑениеauto). СвойÑÑвоgrid-auto-flowÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñак же ÑÑÑановлено Ð´Ð»Ñ ÑÑдов Ñо ÑвойÑÑвомdenseеÑли оно опÑеделено.ÐÑе оÑÑалÑнÑе подÑвойÑÑва grid ÑбÑаÑÑваÑÑÑÑ Ð² Ð¸Ñ Ð½Ð°ÑалÑнÑе знаÑÐµÐ½Ð¸Ñ .
Formal syntax
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>? <track-size> ]+ <line-names>? )
<name-repeat> =
repeat( [ <integer [1,â]> | auto-fill ] , <line-names>+ )
<integer> =
<number-token>
<fixed-breadth> =
<length-percentage [0,â]>
Example
>HTML Content
<div id="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS Content
#container {
display: grid;
grid: repeat(2, 60px) / auto-flow 80px;
}
#container > div {
background-color: #8ca0ff;
width: 50px;
height: 50px;
}
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| CSS Grid Layout Module Level 2> # grid-shorthand> |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- СвÑзаннÑе ÑвойÑÑва CSS:
grid-template,grid-template-rows,grid-template-columns,grid-template-areas,grid-auto-columns,grid-auto-rows,grid-auto-flow - Ð ÑководÑÑво по ÑазмеÑке ÑеÑки: Line-based placement with CSS Grid
- Ð ÑководÑÑво по ÑазмеÑке ÑеÑки: Grid template areas - Grid definition shorthands