--- title: grid-area slug: Web/CSS/grid-area tags: - CSS - CSS 网格 - grid translation_of: Web/CSS/grid-area ---
CSS 属性 grid-area
是一种对于 {{cssxref("grid-row-start")}}、{{cssxref("grid-column-start")}}、{{cssxref("grid-row-end")}} 和 {{cssxref("grid-column-end")}} 的简写,通过基线(line),跨度(span)或没有(自动)的网格放置在 {{glossary("grid rows", "grid row")}} 中指定一个网格项的大小和位置,继而确定 {{glossary("grid areas", "grid area")}} 的边界。
/* Keyword values */ grid-area: auto; grid-area: auto / auto; grid-area: auto / auto / auto; grid-area: auto / auto / auto / auto; /* <custom-ident> values */ grid-area: some-grid-area; grid-area: some-grid-area / another-grid-area; /* <integer> && <custom-ident>? values */ grid-area: some-grid-area 4; grid-area: some-grid-area 4 / 2 another-grid-area; /* span && [ <integer> || <custom-ident> ] values */ grid-area: span 3; grid-area: span 3 / span some-grid-area; grid-area: 2 span / another-grid-area span; /* Global values */ grid-area: inherit; grid-area: initial; grid-area: unset;
如果指定了4个 <grid-line>
的值,grid-row-start
会被设为第一个值,grid-column-start
为第二个值, grid-row-end
为第三个值,grid-column-end
为第四个值。
当 grid-column-end
被忽略时,若 grid-column-start
为一 {{cssxref("<custom-ident>")}}(自定义关键字数据类型), grid-column-end
则为该 <custom-ident>
;否则为 auto
。
当 grid-row-end
被忽略时,若 grid-row-start
为一 <custom-ident>
,grid-row-end
则为该 <custom-ident>
;否则为 auto
。
当 grid-column-start
被忽略时,若 grid-row-start
为一 <custom-ident>
,则所有四项普通写法的属性值均为该值。否则为 auto
。
网格面的属性亦可设为一 {{cssxref("<custom-ident>")}} 作为其名称,然后可通过 {{cssxref("grid-template-areas")}} 放置。
/* Keyword values */ grid-area: auto; grid-area: auto / auto; grid-area: auto / auto / auto; grid-area: auto / auto / auto / auto; /* <custom-ident> values */ grid-area: some-grid-area; grid-area: some-grid-area / another-grid-area; /* <integer> && <custom-ident>? values */ grid-area: 4 some-grid-area; grid-area: 4 some-grid-area / 2 another-grid-area; /* span && [ <integer> || <custom-ident> ] values */ grid-area: span 3; grid-area: span 3 / span some-grid-area; grid-area: 2 span / another-grid-area span; /* Global values */ grid-area: inherit; grid-area: initial; grid-area: unset;
auto
1
自动放置。<custom-ident>
自定义关键字数据类型<custom-ident>-start
'/'<custom-ident>-end
' 命名的自定义基线,它会将第一个这样的基线贡献给网格单元以布置。
注意: 被命名的网格区域(grid areas)会自动生成隐式的被命名的基线,因此指定 grid-row: foo;
将会选择这个命名区域的开始和结束的边界(除非在它之前存在显式指定的以 foo-start
/foo-end
命名的其他基线)。
否则,它就会被当作整数 1
与 <custom-ident>
一起指定。
<integer> && <custom-ident>?
0
。span && [ <integer> || <custom-ident> ]
{{cssxref("<custom-ident>")}},则只有以此命名的基线才会被计算。如果网格线不足,则假定与搜索方向对应的显式网格一侧的所有隐式网格线都具有该名称。
如果忽略 <integer> ,它就默认设为 1
。它的值也不能为0。
<div id="grid"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> </div>
#grid { display: grid; height: 100px; grid-template: repeat(4, 1fr) / 50px 100px; } #item1 { background-color: lime; grid-area: 2 / 2 / auto / span 3; } #item2 { background-color: yellow; } #item3 { background-color: blue; }
{{EmbedLiveSample("Example", "100%", "150px")}}
Specification | Status | Comment |
---|---|---|
{{SpecName("CSS3 Grid", "#propdef-grid-area", "grid-area")}} | {{Spec2("CSS3 Grid")}} | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome("57.0")}}[1] | {{CompatVersionUnknown}}[3] | {{CompatGeckoDesktop("52.0")}}[2] | {{CompatNo}}[3] | {{CompatOpera(44)}}[4] | {{CompatSafari("10.1")}} |
Feature | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | {{CompatChrome("57.0")}}[1] | {{CompatChrome("57.0")}}[1] | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("52.0")}}[2] | {{CompatNo}}[3] | {{CompatOperaMobile(44)}} | {{CompatNo}} |
[1] Implemented behind the experimental Web Platform features flag in chrome://flags
since Chrome 29.0.
[2] Implemented behind the preference layout.css.grid.enabled
since Gecko 40.0 {{geckoRelease("40.0")}}, defaulting to false
. Since Gecko 52.0 {{geckoRelease("52.0")}} it is enabled by default.
[3] Supported as of EdgeHTML 16. Internet Explorer and Edge implement an older version of the specification, which does not define this property. See the request for updating the implementation.
[4] Implemented behind the Enable experimental Web Platform features flag in chrome://flags
since Opera 28.0.