返回

CSS Grid布局(4):子项属性(1)网格线属性

前端

CSS Grid布局的子项属性允许我们控制子项在网格中的位置和大小。这些属性包括:

  • grid-column-start:表示当前子项的左边框,从哪一条垂直网格线开始。
  • grid-column-end:表示当前子项的右边框,到哪一条垂直网格线结束。
  • grid-row-start:表示当前子项的上边框,从哪一条水平网格线开始。
  • grid-row-end:表示当前子项的下边框,到哪一条水平网格线结束。

这些属性可以指定一个线号,也可以指定一个长度值。如果指定了一个线号,则子项的边框将与该线对齐。如果指定了一个长度值,则子项的边框将距离该线指定长度的距离。

例如,以下代码将创建一个2x2的网格,并指定第一个子项位于第一行第一列,第二个子项位于第一行第二列,第三个子项位于第二行第一列,第四个子项位于第二行第二列:

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

.item1 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
}

.item2 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
}

.item3 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 2;
  grid-row-end: 3;
}

.item4 {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
}

输出结果:

+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+

子项属性还可以用于控制子项的跨度。跨度是指子项在网格中占据的列数或行数。跨度可以通过grid-column-spangrid-row-span属性来指定。

例如,以下代码将创建一个2x2的网格,并指定第一个子项跨两列,第二个子项跨两行:

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

.item1 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
}

.item2 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 2;
  grid-row-end: 4;
}

输出结果:

+---+---+
| 1 | 2 |
+---+---+
|   | 2 |
+---+---+

子项属性是CSS Grid布局中非常重要的一个概念。通过熟练掌握这些属性,我们可以创建出各种各样的复杂布局。