grid-template
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-template опÑеделÑÐµÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸, ÑÑÐ´Ñ Ð¸ облаÑÑи гÑид-ÑаÑкладки.
ÐнÑеÑакÑивнÑй пÑимеÑ
grid-template:
"a a a" 40px
"b c c" 40px
"b c c" 40px / 1fr 1fr 1fr;
grid-template:
"b b a" auto
"b b c" 2ch
"b b c" 1em / 20% 20px 1fr;
grid-template:
"a a ." minmax(50px, auto)
"a a ." 80px
"b b c" auto / 2em 3em auto;
<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: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
grid-area: a;
}
#example-element :nth-child(2) {
background-color: rgba(255, 0, 200, 0.2);
border: 3px solid rebeccapurple;
grid-area: b;
}
#example-element :nth-child(3) {
background-color: rgba(94, 255, 0, 0.2);
border: 3px solid green;
grid-area: c;
}
СоÑÑавнÑе ÑвойÑÑва
ÐÑо ÑвойÑÑво ÑвлÑеÑÑÑ ÑокÑаÑÑнной ÑоÑмой запиÑи Ð´Ð»Ñ ÑледÑÑÑÐ¸Ñ CSS-ÑвойÑÑв:
СинÑакÑиÑ
/* ÐлÑÑевÑе Ñлова */
grid-template: none;
/* ÐнаÑÐµÐ½Ð¸Ñ Ð² ÑоÑмаÑе grid-template-rows / grid-template-columns */
grid-template: 100px 1fr / 50px 1fr;
grid-template: auto 1fr / auto 1fr auto;
grid-template: [linename] 100px / [columnname1] 30% [columnname2] 70%;
grid-template: fit-content(100px) / fit-content(40%);
/* ÐнаÑÐµÐ½Ð¸Ñ Ð² ÑоÑмаÑе grid-template-areas grid-template-rows / grid-template-columns */
grid-template:
"a a a"
"b b b";
grid-template:
"a a a" 20%
"b b b" auto;
grid-template:
[header-top] "a a a" [header-bottom]
[main-top] "b b b" 1fr [main-bottom]
/ auto 1fr auto;
/* ÐлобалÑнÑе знаÑÐµÐ½Ð¸Ñ */
grid-template: inherit;
grid-template: initial;
grid-template: revert;
grid-template: unset;
ÐнаÑениÑ
none-
ÐÑо клÑÑевое задаÑÑ Ð·Ð½Ð°Ñение
noneÐ´Ð»Ñ Ð²ÑÐµÑ ÑÑÑÑ ÑвÑзаннÑÑ ÑвойÑÑв, ÑÑо ознаÑÐ°ÐµÑ Ð¾ÑÑÑÑÑÑвие Ñвно заданной гÑид-ÑаÑкладки. СооÑвеÑÑÑвенно, гÑид-облаÑÑи бÑдÑÑ Ð½ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñми. Ð ÑÐ´Ñ Ð¸ колонки бÑдÑÑ ÑоздаваÑÑÑÑ Ð½ÐµÑвнÑм обÑазом, а Ð¸Ñ ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ð¿ÑеделÑÑÑÑÑ ÑвойÑÑвамиgrid-auto-rowsиgrid-auto-columns. <'grid-template-rows'> / <'grid-template-columns'>-
ÐадаÑÑ ÑказаннÑе знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ
grid-template-rowsиgrid-template-columns, а Ð´Ð»Ñ ÑвойÑÑваgrid-template-areasâ знаÑениеnone. [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?-
ÐеÑеÑиÑленнÑе ÑÑÑоки задаÑÑ ÑвойÑÑво
grid-template-areas, знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле каждой ÑÑÑоки ÑÑÑанавливаÑÑ ÑазмеÑÑ Ð³Ñид-Ð¿Ð¾Ð»Ð¾Ñ Ð´Ð»Ñ ÑвойÑÑваgrid-template-rows(либоautoв ÑлÑÑае Ð¸Ñ Ð¾ÑÑÑÑÑÑвиÑ), обÑединÑÑ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ñе гÑид-линии, ÑаÑположеннÑе до и поÑле каждого ÑазмеÑа, далее опÑеделÑеÑÑÑgrid-template-columnsзнаÑениÑми, ÑаÑположеннÑми поÑле ÑлеÑа (либоnoneв ÑлÑÑае Ð¸Ñ Ð¾ÑÑÑÑÑÑвиÑ).
ÐÑимеÑание: пÑи пеÑеÑиÑлении гÑид-Ð¿Ð¾Ð»Ð¾Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¸ÑполÑзоваÑÑ ÑÑнкÑÐ¸Ñ repeat(), поÑколÑÐºÑ Ð¿ÑедполагаеÑÑÑ, ÑÑо ÑÑÐ´Ñ Ð¸ колонки бÑдÑÑ ÑаÑполагаÑÑÑÑ Ð²Ð¼ÐµÑÑе дÑÑгом Ñ Ð´ÑÑгом в ÑÑиле "ASCII-ÑиÑÑнков".
ÐÑимеÑание:
СокÑаÑÑнное ÑвойÑÑво grid Ð¸Ð¼ÐµÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑамÑй ÑоÑÐ¼Ð°Ñ Ð·Ð½Ð°Ñений, но Ñакже ÑбÑаÑÑÐ²Ð°ÐµÑ Ð½ÐµÑвнÑе гÑид-ÑвойÑÑва к иÑ
пеÑвонаÑалÑнÑм знаÑениÑм. ÐÑполÑзÑйÑе grid (в оÑлиÑие Ð¾Ñ grid-template), ÑÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑиÑÑ ÐºÐ°ÑкадиÑование ÑÑиÑ
знаÑений по оÑделÑноÑÑи.
ФоÑмалÑное опÑеделение
| ÐаÑалÑное знаÑение | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
|---|---|
| ÐÑименÑеÑÑÑ Ðº | ÑеÑоÑнÑе конÑейнеÑÑ |
| ÐаÑледÑеÑÑÑ | Ð½ÐµÑ |
| ÐÑоÑенÑÑ | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
| ÐбÑабоÑка знаÑÐµÐ½Ð¸Ñ | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
| Animation type | как и Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из подÑвойÑÑв ÑÑого ÑвойÑÑва:
|
ФоÑмалÑнÑй ÑинÑакÑиÑ
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-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,â]>
ÐÑимеÑÑ
>Создание гÑид-ÑаÑкладки
CSS
#page {
display: grid;
width: 100%;
height: 200px;
grid-template:
[header-left] "head head" 30px [header-right]
[main-left] "nav main" 1fr [main-right]
[footer-left] "nav foot" 30px [footer-right]
/ 120px 1fr;
}
header {
background-color: lime;
grid-area: head;
}
nav {
background-color: lightblue;
grid-area: nav;
}
main {
background-color: yellow;
grid-area: main;
}
footer {
background-color: red;
grid-area: foot;
}
HTML
<section id="page">
<header>Шапка</header>
<nav>ÐавигаÑиÑ</nav>
<main>ÐÑновной конÑенÑ</main>
<footer>Ðодвал</footer>
</section>
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| CSS Grid Layout Module Level 2 > # explicit-grid-shorthand > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- СвÑзаннÑе CSS-ÑвойÑÑва:
grid-template-rows,grid-template-columns,grid-template-areas - Ð ÑководÑÑво по гÑид-ÑаÑкладке: РаÑположение ÑлеменÑов по гÑид-линиÑм Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ CSS Grid
- Ð ÑководÑÑво по гÑид-ÑаÑкладке: Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð³Ñид-облаÑÑей - ÑокÑаÑÑнное опÑеделение гÑида
- ÐбÑÑаÑÑее видео: Grid Template shorthand