CSS Grid 布局:如何使用 grid-template-rows 属性控制网格行的高度

阅读时长 5 分钟读完

CSS Grid 是一种用于设计网格布局的 CSS 模块。与传统的 CSS 布局相比,它具有更强大和灵活的功能。在 CSS Grid 中,我们可以轻松地定义行和列,将页面划分为多个区域,并通过各种属性来控制这些区域之间的间距和位置。

在 CSS Grid 中,我们使用 grid-template-rows 属性来定义网格的行高。这个属性非常灵活,可以用各种方式指定行高。本文将介绍如何使用 grid-template-rows 属性来控制网格行的高度,并包含示例代码。

基本用法

grid-template-rows 属性是用来指定网格行高的。它采用一组值,每个值代表一行的高度。例如,我们可以用以下代码定义一个包含 3 行的网格,其中第一行的高度为 100 像素,第二行的高度为 200 像素,第三行的高度为 300 像素:

当我们将此代码应用于一个容器元素时,我们将得到一个包含三行的网格,每行分别具有不同的高度。例如,如果我们在 grid 容器中添加一些子元素,它们将根据网格的行高进行布局:

接下来,让我们看一下其他几种定义行高的方式。

指定行高单位

我们可以使用各种单位来指定行高。例如,我们可以将行高以像素为单位指定:

或者我们可以使用百分比来指定行高,比如将第一行的高度设置为容器高度的 25%:

我们还可以混合使用不同的单位。例如,我们可以将第一行的高度设置为 100 像素,第二行的高度设置为 20%,第三行的高度设置为 300 像素:

相对行高

我们还可以使用相对行高来指定网格行的大小。相对行高是指相对于网格容器的大小来计算行高。例如,我们可以将第一行的高度设置为 1fr,第二行的高度设置为 2fr,第三行的高度设置为 3fr

在这个例子中,网格容器的大小并不重要。相对行高会自动根据网格容器的大小来计算。例如,如果容器的高度为 600 像素,则第一行的高度将为 100 像素,第二行的高度将为 200 像素,第三行的高度将为 300 像素。如果容器的高度为 1200 像素,则第一行的高度将为 200 像素,第二行的高度将为 400 像素,第三行的高度将为 600 像素。

分数行高

分数行高是相对行高的一种特殊形式。分数行高用分数来表示相对大小。例如,我们可以使用以下代码来创建一个具有两行的网格,其中第一行的高度为第二行的两倍:

在这个例子中,我们将第一行的高度设置为 2fr,这意味着它的大小是第二行大小的两倍。如果第二行的大小为 100 像素,则第一行的大小将为 200 像素。

自动行高

当我们将行高设置为 auto 时,网格将根据子元素的大小自动调整行高。例如,我们可以使用以下代码创建一个具有三行的网格,其中第一行和第三行的大小根据其内容自动调整,第二行的大小为 200 像素:

在这个例子中,我们将第一行和第三行的大小设置为 auto,这将根据它们的内容自动计算大小。第二行的大小设置为 200 像素。

结论

在本文中,我们介绍了如何使用 grid-template-rows 属性来控制网格行的高度。我们探讨了各种不同的方式来指定行高,包括使用像素、百分比、相对和分数行高,以及自动行高。熟练掌握这些技术将使您能够更有效地使用 CSS Grid 来设计网格布局。

示例代码

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

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

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676ef26ae9a7045d0d6f1907

纠错
反馈