gap是推荐属性,用于设置网格间距;grid-gap为旧写法但仍可用;gap兼容Grid与Flexbox布局,语义更清晰,建议新项目使用gap以提升维护性。

在 CSS Grid 布局中,grid-gap 和 gap 用于设置网格元素之间的间距。虽然它们的作用相同,但使用上有一些历史和兼容性差异。
grid-gap 属性(已过时但仍可用)
早期的 CSS Grid 规范中使用 grid-gap 来定义行与列之间的间距。它可以分别设置行间距(row-gap)和列间距(column-gap),也可以统一设置。语法示例:
立即学习“前端免费学习笔记(深入)”;
- grid-gap: 10px; —— 同时设置行和列的间距为 10px
- grid-gap: 10px 20px; —— 行间距 10px,列间距 20px
- grid-row-gap: 10px; —— 只设置行间距
- grid-column-gap: 20px; —— 只设置列间距
注意:grid-gap
、grid-row-gap
、grid-column-gap
在现代浏览器中仍然有效,但已被新标准标记为旧写法。
gap 属性(推荐使用)
CSS 现代规范将grid-gap统一为更通用的 gap 属性。它不仅适用于 Grid 布局,也适用于 Flexbox 等其他布局方式。
语法示例:
立即学习“前端免费学习笔记(深入)”;
- gap: 10px; —— 行和列间距都为 10px
- gap: 10px 20px; —— 第一个是行间距,第二个是列间距
- row-gap: 10px; —— 单独设置行间距
- column-gap: 20px; —— 单独设置列间距
gap 是 grid-gap 的标准化版本,语义更清晰,兼容性也更好(现代浏览器全面支持)。
实际使用建议
尽管grid-gap还能用,但建议在新项目中使用 gap,因为它更通用,未来维护性更强。
示例代码:
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 16px; /* 推荐写法 */
}
如果需要兼容非常老的浏览器(如 IE 或旧版 Edge),可考虑保留 grid-gap
作为降级方案,但大多数情况下直接使用 gap
就足够了。
基本上就这些,不复杂但容易忽略细节。










