网格模板 | grid-template
grid-template
grid-template
CSS属性是定义一个网格列,行和领域的
速记属性。
/* Keyword value */
grid-template: none;
/* grid-template-rows / grid-template-columns values */
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-column values */
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;
/* Global values */
grid-template: inherit;
grid-template: initial;
grid-template: unset;
可以为速记属性值:grid-template-rows
,grid-template-columns
,和grid-template-areas
。
初始值 | 作为简写的每个属性:grid-template-columns:none grid-template-rows:none grid-template-areas:none |
---|---|
适用于 | 网格容器 |
遗传 | 没有 |
百分比 | 作为简写的每一个属性:grid-template-columns:引用内容区域的相应尺寸grid-template-rows:引用内容区域的对应尺寸 |
媒体 | 视觉 |
计算值 | 作为简写的每个属性:grid-template-columns:按照规定,但相对长度转换为绝对长度grid-template-rows:按指定,但相对长度转换为绝对长度grid-template-areas:as规定 |
动画类型 | 离散的 |
规范的顺序 | 形式语法定义的独特的非模糊顺序 |
grid-template-columns
*none
grid-template-rows
*none
grid-template-areas
*none
Applies to grid containers [Inherited](inheritance) no Percentages as each of the properties of the shorthand:
grid-template-columns
*参考内容区域的相应维度
grid-template-rows
*参考内容区域的相应维度
Media visual [Computed value](computed_value) as each of the properties of the shorthand:
grid-template-columns
::按规定,但相对长度转换为绝对长度
grid-template-rows
::按规定,但相对长度转换为绝对长度
grid-template-areas
*具体规定
Animation type discrete Canonical order the unique non-ambiguous order defined by the formal grammar
语法
取值
none是一个将所有三个longhand属性设置为的关键字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 art”中的行/列对齐。
注:
该grid
速记接受相同的语法,但也复位隐含网格属性为初始值。使用grid
(而不是grid-template
)来防止这些值单独级联。
形式语法
none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?where
<line-names> = '[' <custom-ident>* ']'
<track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )
<explicit-track-list> = [ <line-names>? <track-size> ]+ <line-names>?
where
<track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto
<inflexible-breadth> = <length> | <percentage> | min-content | max-content | auto
where
<length-percentage> = <length> | <percentage>
实例
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-column: foot;
}
HTML
<section id="page">
<header>Header</header>
<nav>Navigation</nav>
<main>Main area</main>
<footer>Footer</footer>
</section>
结果
规范
Specification | Status | Comment |
---|---|---|
CSS Grid LayoutThe definition of 'grid-template' in that specification. | Candidate Recommendation | Initial definition |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 57.01 | No support3 | 52.0 (52.0)2 | No support3 | 444 | No support5 |
Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 57.01 | 57.01 | 52.0 (52.0)2 | No support3 | 44 | No support |