CSS column-count 语法
在 CSS 中,column-count 属性用于定义多列布局的列数。
语法:
column-count: auto | n;说明:
column-count 的取值有以下 2 种。
auto(默认值):列数由 column-width 属性决定。如果没有设置 column-width 且 column-count 为 auto,则内容将显示在单列中。n:n 是一个正整数,表示划分为 n 列。
对于 column-count 属性,我们要清楚以下几点。
- column-count 通常与 column-width、column-gap 和 column-rule 等属性一起使用,以创建更完整的弹性多列布局。
- 当使用 column-count 时,内容的顺序是先填充第一列,然后是第二列,以此类推。
- 可以使用 break-before、break-after、break-inside 属性来控制内容在列之间的断行行为。
当同时设置了 column-count 和 column-width,且都不是 auto 时:
- 浏览器会优先根据 column-width 来计算可容纳的列数。
- 但最终的列数不会超过 column-count 设定的最大列数。
注意: column-count 可以用于块级元素(包括浮动和绝对定位的块)、行内块元素和表格单元格。但它不适用于非替换行内元素(如 span)。
CSS column-count 摘要
| 属于 | CSS 多列布局 |
|---|---|
| 使用频率 | 中 |
| 是否继承 | 否 |
| 默认值 | auto |
| 兼容性 | 查看 |
| 官方文档 | 查看 |
| MDN | 查看 |
CSS column-count 示例
接下来,我们通过一个简单的例子来讲解一下 column-count 属性是如何使用的。
示例:column-count 基本用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
body {
width: 400px;
padding: 10px;
border: 1px solid silver;
column-count: 3;
}
</style>
</head>
<body>
<h1>匆匆</h1>
<p>燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时 候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢——如今又到了哪里呢?</p>
<p>……</p>
<p>在逃去如飞的日子里,在千门万户的世界里的我能做些什么呢?只有徘徊罢了,只有匆匆罢了;在八千多日的匆匆里,除徘徊外,又剩些什么呢?过去的日子如轻烟,被微风吹散了,如薄雾,被初阳蒸融了;我留着些什么痕迹呢?我何曾留着像游丝样的痕迹呢?我赤裸裸来到这世界,转眼间也将赤裸裸地回去罢?但不能平的,为什么偏要白白走这一遭啊?</p>
<p>你聪明的,告诉我,我们的日子为什么一去不复返呢?</p>
</body>
</html>页面效果如下图所示。

分析:
在上面例子中,我们给 body 定义了一定的宽度,然后使用 column-count: 3; 使得 body 会以最恰当的方式自动划分为 3 列。小伙伴们可以试着改变 body 的 width,然后看看实际效果如何。
columns 是一个复合属性
columns 其实是一个复合属性,它有 2 个子属性(如下表所示)。
| 子属性 | 说明 |
|---|---|
| column-count | 定义多列布局的列数。 |
| column-width | 定义多列布局中列宽 |
