基本例子

属性 可能的值
display 网格/内联网格

CSS Grid 被定义为显示属性。它仅适用于父元素及其直接子元素。

考虑以下标记:

<section class="container">
  <div class="item1">item1</div>
  <div class="item2">item2</div>
  <div class="item3">item3</div>
  <div class="item4">item4</div>
</section>

将上面的标记结构定义为网格的最简单方法是将其 display 属性设置为 grid

.container {
  display: grid;   
}

但是,这样做总会导致所有子元素在彼此之上崩溃。这是因为孩子们目前不知道如何在网格中定位自己。但我们可以明确告诉他们。

首先,我们需要告诉网格元素 .container 将构成其结构的行数和列数,我们可以使用 grid-columnsgrid-rows 属性来做到这一点(注意复数):

.container {
  display: grid;
  grid-columns: 50px 50px 50px;
  grid-rows: 50px 50px;
}

但是,这对我们来说仍然没有多大帮助,因为我们需要为每个子元素命令。我们可以通过指定 grid-rowgrid-column 值来实现这一点,这些值将告诉它它在网格中的位置:

.container .item1 {
  grid-column: 1;
  grid-row: 1;
}
.container .item2 {
  grid-column: 2;
  grid-row: 1;
}
.container .item3 {
  grid-column: 1;
  grid-row: 2;
}
.container .item4 {
  grid-column: 2;
  grid-row: 2;
}

通过为每个项目提供列和行值,它标识容器中的项目顺序。

JSFiddle 上查看一个工作示例。你需要在 IE10,IE11 或 Edge 中查看此内容才能使其正常工作,因为这些是目前唯一支持网格布局的浏览器(带有供应商前缀 -ms-)或根据 caniuse 在 Chrome,Opera 和 Firefox 中启用标记以便测试跟他们。