CSS grid 属性
grid 是一个 CSS 简写属性,可以用来设置以下属性:
- 显式网格属性 grid-template-rows、grid-template-columns 和 grid-template-areas,
- 隐式网格属性 grid-auto-rows、grid-auto-columns 和 grid-auto-flow,
- 间距属性 grid-column-gap (en-US) 和 grid-row-gap (en-US)。
实例
制作一个三列网格布局,其中第一行高 150 像素:
<!DOCTYPE html><html><head><style>.grid-container {display: grid;grid: 150px / auto auto auto;grid-gap: 10px;background-color: #2196F3;padding: 10px;}.grid-container > div {background-color: rgba(255, 255, 255, 0.8);text-align: center;padding: 20px 0;font-size: 30px;}</style></head><body><h2>grid 属性</h2><p>grid 属性是所有网格容器属性的简写属性。</p><p>这个网格布局有三列,并且第一行为 150px 高:</p><div class="grid-container"><div class="item1">1</div><div class="item2">2</div><div class="item3">3</div><div class="item4">4</div><div class="item5">5</div><div class="item6">6</div></div></body></html>
定义和用法
grid 属性是以下属性的简写属性:
- grid-template-rows
- grid-template-columns
- grid-template-areas
- grid-auto-rows
- grid-auto-columns
- grid-auto-flow
| 默认值: | none none none auto auto row |
|---|---|
| 继承: | 否 |
| 动画制作: | 是,请参阅:动画相关属性。 |
| 版本: | CSS Grid Layout Module Level 1 |
| JavaScript 语法: | object.style.grid="250px / auto auto auto" |
浏览器支持
表格中的数字注明了完全支持该属性的首个浏览器版本。
| 属性 | |||||
|---|---|---|---|---|---|
| grid | 57 | 16 | 52 | 10 | 44 |
CSS 语法
grid: none|grid-template-rows / grid-template-columns|grid-template-areas|grid-template-rows / [grid-auto-flow] grid-auto-columns|[grid-auto-flow] grid-auto-rows / grid-template-columns|initial|inherit;
属性值
| 值 | 描述 |
|---|---|
| none | 默认值。不定义行或列的尺寸。 |
| grid-template-rows / grid-template-columns | 规定列和行的尺寸。 |
| grid-template-areas | 规定使用命名项目的网格布局。 |
| grid-template-rows / grid-auto-columns | 规定行的尺寸(高度),以及列的自动尺寸。 |
| grid-auto-rows / grid-template-columns | 规定行的自动尺寸,并设置 grid-template-columns 属性。 |
| grid-template-rows / grid-auto-flow grid-auto-columns | 规定行的尺寸(高度),以及如何放置自动就位的项目,和列的自动尺寸。 |
| grid-auto-flow grid-auto-rows / grid-template-columns | 规定如何放置自动就位的项目,和行的自动尺寸,以及设置 grid-template-columns 属性。 |
| initial | 将此属性设置为其默认值。参阅 initial。 |
| inherit | 从其父元素继承此属性。参阅 inherit。 |
更多实例
实例1
规定两行,其中 "item1" 跨越前两行中的前两列(采用五列网格布局):
<!DOCTYPE html><html><head><style>.item1 {grid-area: myArea;}.grid-container {display: grid;grid:'myArea myArea . . .''myArea myArea . . .';grid-gap: 10px;background-color: #2196F3;padding: 10px;}.grid-container > div {background-color: rgba(255, 255, 255, 0.8);text-align: center;padding: 20px 0;font-size: 30px;}</style></head><body><h2>grid 属性</h2><p>grid 属性还可以使用命名的网格项目来规定列/行。</p><p>如需规定两行,请设置更多序列。</p><p>每行由撇号(' ')定义。</p><p>"myArea" 将在前两行中横跨前两列:</p><div class="grid-container"><div class="item1">1</div><div class="item2">2</div><div class="item3">3</div><div class="item4">4</div><div class="item5">5</div><div class="item6">6</div><div class="item7">7</div><div class="item8">8</div><div class="item9">9</div><div class="item10">10</div><div class="item11">11</div><div class="item12">12</div></div></body></html>
实例2
命名所有项目,并制作一张现成的网页模板:
<!DOCTYPE html><html><head><style>.item1 { grid-area: header; }.item2 { grid-area: menu; }.item3 { grid-area: main; }.item4 { grid-area: right; }.item5 { grid-area: footer; }.grid-container {display: grid;grid:'header header header header header header''menu main main main right right''menu footer footer footer footer footer';grid-gap: 10px;background-color: #2196F3;padding: 10px;}.grid-container > div {background-color: rgba(255, 255, 255, 0.8);text-align: center;padding: 20px 0;font-size: 30px;}</style></head><body><h2>一张网页模板</h2><p>您可以使用 <em>grid-areas</em> 属性来命名网格项目。</p><p>通过咋网格容器上使用 <em>grid</em> 属性,您可以在设置网格布局时引用该名称。</p><p>此网格布局包含六列三行:</p><div class="grid-container"><div class="item1">Header</div><div class="item2">Menu</div><div class="item3">Main</div><div class="item4">Right</div><div class="item5">Footer</div></div></body></html>
相关页面
CSS 教程:CSS 网格容器
CSS 参考手册:grid-template-areas 属性
CSS 参考手册:grid-template-rows 属性
CSS 参考手册:grid-template-columns 属性
CSS 参考手册:grid-auto-rows 属性
CSS 参考手册:grid-auto-columns 属性
CSS 参考手册:grid-auto-flow 属性
CSS 参考手册:grid-row-gap 属性
CSS 参考手册:grid-column-gap 属性