gap是现代CSS推荐属性,可通用于Grid、Flexbox等布局,语法简洁且兼容多模型;2. grid-gap为旧版网格专用属性,现已被gap取代,仅需在兼容老浏览器时保留使用。

在 CSS Grid 布局中,grid-gap 和 gap 都用于设置网格行与列之间的间距,但它们的使用背景和兼容性有所不同。随着 CSS 规范的发展,gap 属性逐渐成为推荐写法。
1. grid-gap:旧版网格专用属性
grid-gap 是早期 CSS Grid 模块中定义的属性,专门用于网格布局。它可以同时设置行间距(row gap)和列间距(column gap),也可拆分为:
- grid-row-gap:设置行与行之间的间距
- grid-column-gap:设置列与列之间的间距
示例:
grid-gap: 10px 20px;
等价于:
立即学习“前端免费学习笔记(深入)”;
grid-row-gap: 10px; grid-column-gap: 20px;
注意:grid-gap 只作用于使用 display: grid 或 display: inline-grid 的容器。
2. gap:通用间距属性(推荐使用)
gap 是从 grid-gap 演进而来的通用属性,不仅可用于 Grid 布局,也适用于 Flexbox 和 Multi-column 布局。
它完全取代了 grid-gap、row-gap 和 column-gap 在这些布局中的角色。
用法与 grid-gap 完全一致:
gap: 10px 20px;
同样可拆分为:
- row-gap:行间距
- column-gap:列间距
3. 实际使用建议
现代浏览器已广泛支持 gap 属性。虽然 grid-gap 仍能正常工作(出于兼容性保留),但官方规范已将其标记为 grid- 前缀版本的别名。
推荐做法是使用无前缀的 gap,因为它:
- 语法更简洁统一
- 可在多种布局模型中复用
- 符合现代 CSS 发展方向
例如在 Flex 布局中也能使用 gap:
.container {
display: flex;
flex-wrap: wrap;
gap: 16px;
}
4. 浏览器兼容性说明
目前主流浏览器均支持 gap 在 Grid 和 Flex 中的使用。若需支持较老版本浏览器(如 IE),可能需要保留 grid-gap 或使用其他替代方案。但在大多数现代项目中,直接使用 gap 即可。
基本上就这些。现在应优先使用 gap,无需再写 grid-gap,除非有特殊兼容需求。










