gap不能直接用于div或p实现多列间隙,必须用column-gap配合column-count或column-width;这是长文分栏唯一合法且广泛支持的方案。

直接说结论: HTML 中实现报纸式、说明书式的多列文本排版,靠的是 CSS 多列布局(multi-column layout),不是 Flex 也不是 Grid。这个场景下, Grid 的 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur 看到“列间隙”就想到表格的 最容易被忽略的一点:多列文章布局没有“响应式自动列数切换”的内置机制。你得靠媒体查询手动改 gap 在 HTML 多列文章布局中**不能直接用在 上生效**,必须配合 CSS 多列布局(columns)、Flex 或 Grid 才能起作用;而真正适合“长文分栏”的,只有 column-gap 配合 column-count 或 column-width ——这是唯一合法且被广泛支持的路径。column-gap 是多列文章布局的唯一有效间隙属性
gap 属性完全无效,浏览器会忽略它;只有 column-gap 被定义为该布局的原生属性。
column-gap: 24px 控制相邻两列之间的空白,单位必须明确(px、em、rem 都行,% 不支持)column-count(如 column-count: 3)或 column-width(如 column-width: 180px)一起使用,否则列不会生成,column-gap 也就无从谈起gap: 24px 加在普通 .article { columns: 3; column-gap: 24px; }
为什么不能用 display: grid + gap 来做文章分栏
gap 确实强大,但它把内容按网格项(grid item)切分——每个
、
都变成独立单元格,**破坏文本流连续性**。多列文章要求文字自然跨列流动(比如第1列末尾的词自动跳到第2列开头),而 Grid 会强制截断、重排,导致语义断裂、阅读体验错乱。
grid-template-columns: repeat(3, 1fr) + gap,你也得手动把长文拆成多个 column-gap 和 border-spacing 容易混淆的点
border-spacing?这是典型误迁。两者完全无关:border-spacing 只对 生效,且前提是
border-collapse: separate;它控制的是单元格边框之间的距离,不是文本分栏
column-gap 仅作用于启用了多列布局的块容器(display: block 默认即可),与表格元素、边框设置毫无关系column-gap 写在 上 → 浏览器静默忽略;把
border-spacing 写在 column-gap,而不是误以为是 margin 或 padding 堆出来的空隙column-count,比如小屏设为 column-count: 1,中屏 2,大屏 3;column-gap 本身不会自适应,它的值始终是固定物理间距。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










