Gird 是二维布局系统,提供了很多功能来简化复杂布局的创建。一个 grid 通常包含 column、row 以及 gutters。

通过给容器声明 display: grid 来定义 grid,所有容器的 direct children 会转变成 grid items。但仅声明 display: grid 时元素的布局并不会改变,需添加列的属性:

.container {
	display: grid;
	grid-template-columns: 200px 200px 200px;
}

如果想要弹性 grids 可以使用 fr 单位。fr 单位按比例分配可用空间,例如 2fr 分配的空间是 1fr 的两倍:

.container {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
}

将 column 和 row 理解为 track,可以在 track 之间添加 gap:

.container {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 20px;
}

另外我们还可以使用 column-gaprow-gap 来分别设置 column 与行之间的间距,gap 则是这两者的缩写。

如果存在多个 column 都是相同宽度的情况,可以使用 repeat() 方法来简化定义:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

显示 grid 与隐式 grid

使用e