grid-template-rows用于定义网格行高,支持px、%、auto、fr等单位,可使用repeat()简化重复值,结合minmax()提升响应式布局灵活性。

CSS 中的 grid-template-rows 属性用于定义网格容器中每一行的高度。通过它,你可以精确控制每行的尺寸,适应不同的布局需求。
基本语法
grid-template-rows 接受一个或多个用空格分隔的值,每个值对应一行的高度:
.container {
display: grid;
grid-template-rows: 100px 50px auto;
}
上面代码创建了一个三行的网格,第一行高 100px,第二行为 50px,第三行自动填充剩余空间(auto)。
常用单位和值类型
你可以使用多种单位来设置行高:
立即学习“前端免费学习笔记(深入)”;
-
固定单位:如
px、em、rem,适合固定高度的行。 -
百分比:
%相对于网格容器的高度。 - auto:根据内容自动调整高度。
-
fr 单位:表示可用空间的份数,比如
1fr是一份,2fr是两份。 - min-content / max-content:根据内容最小或最大所需空间设定高度。
例如:
.container {
display: grid;
height: 300px;
grid-template-rows: 1fr 2fr;
}
这个例子将容器分为两行,第一行占 1/3 高度,第二行占 2/3。
重复行高的简化写法
如果有多行相同高度,可以用 repeat() 函数简化:
.container {
grid-template-rows: repeat(3, 100px); /* 三行,每行 100px */
}
也可以结合不同值:
grid-template-rows: repeat(2, 80px auto);
这会生成四行:80px、auto、80px、auto。
实际应用建议
在响应式设计中,推荐结合 fr 和 minmax() 提高灵活性:
.container {
display: grid;
height: 400px;
grid-template-rows: minmax(60px, auto) 1fr;
}
第一行至少 60px 高,内容多时可扩展;第二行占据剩余空间。
基本上就这些,合理使用 grid-template-rows 能让你的网格布局更清晰可控。










