CSS Grid 布局中如何使用 grid-template-rows 和 grid-template-columns 控制网格的行列数量?

CSS Grid 布局是一种新的布局方式,它可以帮助我们更方便地实现网页布局。在 CSS Grid 布局中,我们可以使用 grid-template-rowsgrid-template-columns 属性来控制网格的行列数量,从而实现更灵活的布局。

grid-template-rows 和 grid-template-columns 属性

grid-template-rowsgrid-template-columns 属性是 CSS Grid 布局中用来定义网格行和列的属性。它们都是一个由空格分隔的值列表,每个值可以是一个长度、百分比、自动或一个网格轨道名称。

定义网格行

我们可以使用 grid-template-rows 属性来定义网格的行。它的值可以是一个长度、百分比、自动或一个网格轨道名称。如果我们想定义多行,可以使用空格分隔它们。

--------------- -
  -------- -----
  ------------------- ----- ----- ------
-

上面的代码定义了一个三行的网格,第一行高度为 100 像素,第二行高度为 200 像素,第三行高度为 300 像素。

我们也可以使用百分比来定义行高,例如:

--------------- -
  -------- -----
  ------------------- --- --- ----
-

这样,我们就定义了一个三行的网格,第一行高度为容器高度的 10%,第二行高度为容器高度的 20%,第三行高度为容器高度的 30%。

如果我们想让某一行的高度自适应,可以将它的值设置为 auto。例如:

--------------- -
  -------- -----
  ------------------- ----- ---- ------
-

这样,第二行的高度就会自适应并填满剩余的空间。

我们还可以使用网格轨道名称来定义行高。网格轨道名称是一个自定义的名字,我们可以在定义网格模板时使用它们。例如:

--------------- -
  -------- -----
  ------------------- -------- ----- --------- ---- -------- ---- ------
-

这样,我们就定义了一个五行的网格,其中第一行命名为 header,高度为 100 像素;第二行命名为 content,高度自适应;第三行命名为 footer,高度为 50 像素;第四行命名为 end

定义网格列

我们可以使用 grid-template-columns 属性来定义网格的列。它的值可以是一个长度、百分比、自动或一个网格轨道名称。如果我们想定义多列,可以使用空格分隔它们。

--------------- -
  -------- -----
  ---------------------- ----- ----- ------
-

上面的代码定义了一个三列的网格,第一列宽度为 100 像素,第二列宽度为 200 像素,第三列宽度为 300 像素。

我们也可以使用百分比来定义列宽,例如:

--------------- -
  -------- -----
  ---------------------- --- --- ----
-

这样,我们就定义了一个三列的网格,第一列宽度为容器宽度的 10%,第二列宽度为容器宽度的 20%,第三列宽度为容器宽度的 30%。

如果我们想让某一列的宽度自适应,可以将它的值设置为 auto。例如:

--------------- -
  -------- -----
  ---------------------- ----- ---- ------
-

这样,第二列的宽度就会自适应并填满剩余的空间。

我们还可以使用网格轨道名称来定义列宽。网格轨道名称是一个自定义的名字,我们可以在定义网格模板时使用它们。例如:

--------------- -
  -------- -----
  ---------------------- --------- ----- --------- ---- ------
-

这样,我们就定义了一个三列的网格,其中第一列命名为 sidebar,宽度为 100 像素;第二列命名为 content,宽度自适应;第三列命名为 end

示例代码

下面是一个使用 grid-template-rowsgrid-template-columns 属性的示例代码:

---- -----------------------
  ---- ---------------------------
  ---- -----------------------------
  ---- -----------------------------
  ---- ---------------------------
------

-------
--------------- -
  -------- -----
  ------------------- ----- ---- -----
  ---------------------- ----- -----
  --------- -----
  ------- ------
-

------- -
  --------- - - --
  ------------ - - --
  ----------------- -----
-

-------- -
  --------- - - --
  ------------ - - --
  ----------------- -----
-

-------- -
  --------- - - --
  ------------ - - --
  ----------------- -----
-

------- -
  --------- - - --
  ------------ - - --
  ----------------- -----
-
--------

上面的代码定义了一个网格布局,其中有一个头部、一个侧边栏、一个内容区和一个底部。头部和底部的高度固定,侧边栏和内容区的宽度自适应。整个布局的高度为 500 像素,有 10 像素的间隔。

总结

使用 grid-template-rowsgrid-template-columns 属性可以帮助我们更方便地控制网格的行列数量,从而实现更灵活的布局。我们可以使用长度、百分比、自动或网格轨道名称来定义行列的大小和数量。在实际开发中,我们可以根据实际需求来使用这两个属性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65ffe94fd10417a222b285bc