`column-count`仅对块级容器内的连续文本流生效,需满足display为block/inline-block、有足够高度、无overflow:hidden、父元素非flex/grid等条件。`column-width`比固定列数更适配响应式布局,避免窄屏下文字拥挤。真正多列布局实现文本自动折行分栏,而非用float或table模拟。
column-count 不是“让 div 变成多列”的开关,它只对块级容器里的连续文本流生效;需满足 display 为 block/inline-block、有足够高度、无 overflow: hidden 裁剪、父元素非 flex/grid,且 column-width 比 column-count 更适配响应式。

不少开发者误以为给 文字 长期稳定更新的攒劲资源: >>>点此立即查看<<<div 加上 column-count 就能自动分栏,结果发现页面毫无变化。这并非代码写错,而是浏览器压根没有触发 CSS 多列布局机制——该属性仅对块级容器内的连续文本流生效。例如使用 希望实现分栏,但前提条件未满足,自然无法产生预期效果。
浏览器不触发多列布局,通常卡在以下四个硬性条件上:
display 必须为 block 或 inline-block;若设为 flex、grid、table 或 inline,column-count 会被直接忽略min-height 时,浏览器认为无需分栏,从而放弃触发overflow: hidden 会将第二列之后的内容裁剪掉,视觉上看似“未生效”,实则内容被截断display: flex 或 display: grid,子元素的文本流会被父布局模型接管,导致 column-count 失效固定列数在窄屏上容易出问题:例如 column-count: 3 在手机端可能使每列压缩至 80px,导致文字拥挤、行高错乱。改用 column-width 让浏览器自动计算列数则更为稳妥:
.article { column-width: 16rem; /* 主力参数,浏览器据此推算列数 */ column-gap: 1.5rem; /* 间隙建议显式设置,默认 1em 过小 */ column-rule: 1px solid #eee; /* 分隔线不占宽度,但需 gap 留够空间 */}
这种写法下,窄屏自动退化为单列,宽屏自然铺开 2–3 列,无需编写大量 @media 覆盖规则。
float 和 table 虽然能在视觉上呈现多列效果,但本质上是多个独立块,存在诸多缺陷:
table 违反语义——它是为结构化数据设计的,W3C 明确反对将其用于页面布局float 依赖 clear 清除浮动、容易塌陷,overflow: hidden 的副作用难以排查真正的 CSS 多列布局核心只有一条:让一段连续文本在块级容器内,按照指定宽度或列数自动折行分栏。除此之外的所有“多列”方案,都只是在模拟这一效果,代价却是语义丢失、维护成本升高、响应式规则变得脆弱——这一点很容易被忽视,直到用户用 iPad 打开页面才发现文字模糊成一团。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述