grid-auto-rows 控制隐式创建的行高,grid-auto-columns 控制隐式创建的列宽。当内容超出显式定义的网格范围时,浏览器自动创建新行或新列,其尺寸由这两个属性分别指定,如 grid-auto-rows: 60px 和 grid-auto-columns: 120px 分别设置隐式行高和列宽。

grid-auto-rows 和 grid-auto-columns 是 CSS Grid 布局中用于控制自动创建的网格轨道(隐式网格)大小的属性。它们的区别主要在于作用方向不同,分别管理行和列的自动生成行为。
grid-auto-rows:控制自动添加的行高
当你在网格容器中放置的内容超出了显式定义的行数时,浏览器会自动创建额外的行轨道来容纳这些内容。这些是“隐式网格行”。grid-auto-rows 就是用来设置这些自动创建的行的高度。
常见用法:
grid-auto-rows: 100px;
—— 所有自动生成的行高度为 100pxgrid-auto-rows: minmax(100px, auto);
—— 自动行最小 100px,内容多时可伸展
示例场景:你只定义了两行,但第四个子项被放在第4行,那么第3、第4行就是隐式创建的,其高度由
grid-auto-rows决定。
立即学习“前端免费学习笔记(深入)”;
grid-auto-columns:控制自动添加的列宽
类似地,当内容被放置到未显式定义的列位置时,浏览器会自动创建新的列轨道。grid-auto-columns 用于设置这些隐式列的宽度。
常见用法:
grid-auto-columns: 200px;
—— 自动生成的列宽度为 200pxgrid-auto-columns: minmax(150px, 1fr);
—— 列最小 150px,最大占可用空间
这种情形较少见,通常出现在使用
grid-column将元素定位到很远的列索引时。
实际对比说明
假设你有如下定义:
.container {
display: grid;
grid-template-rows: 80px 80px; /* 显式定义2行 */
grid-template-columns: 100px; /* 显式定义1列 */
grid-auto-rows: 60px; /* 隐式行高60px */
grid-auto-columns: 120px; /* 隐式列宽120px */
}
.item { grid-column: 3; grid-row: 3; } /* 放到第3列第3行 */
此时:
- 第3行是自动创建的,高度为 60px(受
grid-auto-rows
控制) - 第3列也是自动创建的,宽度为 120px(受
grid-auto-columns
控制)
基本上就这些。理解这两个属性的关键是分清“行”对应高度,“列”对应宽度,而它们只在显式网格不够用时才起作用。不复杂但容易忽略。










