使用 grid-auto-flow 控制排列方向,结合 grid-auto-columns/rows 和 minmax 实现自动布局。1. 设 display: grid 并用 grid-auto-flow 定义流向;2. 通过 grid-auto-columns/rows 设置自动生成行列尺寸;3. 使用 repeat(auto-fit) 与 minmax(120px, 1fr) 实现响应式列数;4. 设 grid-auto-flow: column 可切换为列优先排列。

要让 Grid 容器自动排列子元素,关键是使用 grid-auto-flow 和相关属性来控制自动布局行为。不需要手动为每个子项指定行列位置,Grid 会根据内容自动填充。
将容器设为 grid 布局,并使用 grid-auto-flow: row(默认)或 column 来定义排列方向。
.container {
display: grid;
grid-auto-flow: row; /* 按行自动排列(默认) */
gap: 10px; /* 子项之间的间距 */
grid-template-columns: repeat(3, 100px); /* 定义每列宽度 */
}
在这个例子中,子元素会从左到右、从上到下自动填入三列的网格中。
如果不想预先定义所有列或行,可以使用 grid-auto-columns 和 grid-auto-rows 设置自动生成的行列尺寸。
立即学习“前端免费学习笔记(深入)”;
.container {
display: grid;
grid-auto-flow: row;
grid-auto-columns: 100px; /* 自动生成的列宽 */
grid-auto-rows: 80px; /* 自动生成的行高 */
gap: 10px;
}
这样即使没写 grid-template-columns,Grid 也会为每一个新列/行应用设定的大小。
结合 repeat(auto-fit) 或 auto-fill,可以让容器根据可用空间自动调整列数。
.container {
display: grid;
grid-auto-flow: row;
gap: 15px;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
说明:
这种写法适合做响应式相册、卡片列表等场景,无需媒体查询就能自适应不同屏幕。
默认是按行排列(row),若想先纵向填满一列再进入下一列,可设置:
.container {
display: grid;
grid-auto-flow: column;
grid-template-rows: repeat(3, 80px);
}
此时元素会先垂直排列,填满第一列后再跳到第二列。
基本上就这些。通过合理组合 grid-auto-flow、repeat(auto-fit) 和 minmax,就能实现灵活又自动的网格布局,不复杂但容易忽略细节。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号