gap仅在display: flex或grid容器上生效,控制直系子元素间间隙;IE全系及Safari≤14.0不支持,需用row-gap/column-gap替代;须清除子项margin避免叠加。

gap 必须配合 display: flex 或 display: grid 才生效
直接给 比如三栏结构: 把 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
真正容易被忽略的是:当你把项目里所有 gap: 16px 没反应,是因为它不是通用样式属性。只有容器设置了 display: flex 或 display: grid,gap 才会控制其**直系子元素之间**的间隙。
gap 同时影响主轴(如水平排列时的左右)和交叉轴(垂直方向的上下),flex-wrap: wrap 下也生效gap 等价于同时设 row-gap 和 column-gap,对行列轨道间空白统一管理gap 简写(需拆成 row-gap + column-gap)三栏/卡片等经典布局用 gap 替代 margin 更稳
.container { display: flex; gap: 12px; },左右栏固定宽、中间 flex: 1,这时 gap 会自然插入在三者之间,不会像 margin-right 那样导致首尾多出空隙或触发外边距合并。
margin-right: 12px,删掉它们——否则 gap 和 margin 叠加,间距翻倍.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--space-lg); },响应式换列时间隙自动保持一致.form-group { display: flex; flex-direction: column; gap: var(--space-md); },比用 margin-bottom 更可靠,尤其字段动态增删时统一间距规范必须靠 CSS 变量,不是硬编码
gap: 16px 散落在各处,改一个值就得全局搜,漏改就错位。正确做法是在 :root 定义一套语义化间距标尺:
:root {
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
}
px),避免 calc() 中单位缺失报错.step-group { gap: var(--space-lg); },而不是 gap: 24px
--form-gap: var(--space-md)
gap 控制不了边框与内容距离,那是 padding 的事
gap 只管“子元素之间”,不管“子元素内部”或“子元素与父容器边框”。常见错误是给带边框的卡片容器设 gap,结果标题紧贴上边框、描述紧贴下边框。
padding:.card { padding: 16px; border: 1px solid #ddd; }
gap:.card-list { display: grid; gap: var(--space-lg); }
gap 加在按钮自身上?无效,浏览器忽略 —— gap 必须写在父容器上gap 出现在它们的边框外侧,不是“边框到内容”,而是“边框到下一个边框”margin 换成 gap 后,必须同步清理掉子元素上的 margin,否则视觉空隙会叠加;这不是 bug,是盒模型和布局层规则的自然结果。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










