CSS Grid 布局:如何使用 grid-template 属性设定行和列的规则

在网页设计中,布局是一个非常重要的部分。CSS Grid 布局是近年来出现的一种布局方式,它提供了一种全新的 web 页面布局方法,能够有效地实现多列等分、自适应或固定列大小、按行缩放等布局效果。

在 CSS Grid 布局中,使用 grid-template-columnsgrid-template-rows 属性,可以方便地设定行和列的规则,从而实现灵活的布局效果。

grid-template-columns 属性

grid-template-columns 属性用于设定网格容器的列规则,指定每一列的宽度和数量。其中,宽度可以是长度值、百分比、fr 等,数量可以是固定的数字或自动填充。

例如,下面的代码使用 grid-template-columns 属性将父容器分为三个等宽的列:

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

这里 1fr 表示一份比例,一共三份,所以每一列宽度都是父容器宽度的三分之一。

也可以使用像素长度,如下所示:

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

这样就会将父容器分为三列,每一列都是 100 像素宽。

还可以使用百分比来设置列宽,例如:

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

这样就会将父容器分为三列,宽度分别占据 30%、50%、20%。

grid-template-rows 属性

grid-template-columns 属性类似,使用 grid-template-rows 属性可以方便地设定网格容器的行规则,指定每一行的高度和数量。其中,高度可以是长度值、百分比、fr 等,数量可以是固定的数字或自动填充。

例如,下面的代码使用 grid-template-rows 属性将父容器分为两个等高的行:

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

这里 1fr 表示一份比例,一共两份,所以每一行高度都是父容器高度的一半。

也可以使用像素长度,如下所示:

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

这样就会将父容器分为两行,每一行都是 100 像素高。

还可以使用百分比来设置行高,例如:

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

这样就会将父容器分为两行,高度分别占据 30%、70%。

同时设定行和列规则

在实际布局中,通常需要同时设定列和行规则。可以在 grid-template-columnsgrid-template-rows 中使用空格隔开,设定每一列和每一行的宽度和高度规则。

例如,下面的代码使用 grid-template-columnsgrid-template-rows 同时设定了父容器的行和列规则:

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

这里将父容器分为 2 行 3 列,左右两列宽度相等,中间一列宽度是左右两列的二倍;第一行高度为 100 像素,第二行高度为 200 像素。

自动填充的网格行和网格列

除了固定数量的行和列,还可以使用自动填充的网格行和网格列。

例如,下面的代码使用 grid-template-columnsgrid-template-rows 自动填充网格行和网格列:

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

这里使用 repeat 函数,自动填充若干列,每一列的最小宽度是 100 像素,最大值为 1fr;行高是 100 像素。

这样就可以实现自适应的布局效果,当容器大小变化时,网格容器自动填充网格列,保持三列等分的布局效果。

总结

本文介绍了 CSS Grid 布局中 grid-template-columnsgrid-template-rows 属性的基本用法,包括设定列宽、行高、数量规则、自动填充网格行和网格列等,并给出了实例代码。

在实际项目中,可以根据需要灵活运用这些属性,实现多样化的布局效果,提升网页的可视化效果和用户体验。

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