在以下情况使用多列布局:
- 你想要你的文本看起来想报纸那种排版布局。
- 您有一组要分成列的小项目。
- 你不需要单独为指定的列写样式。
使用多列布局来创建列,文本会以连续流的形式依次填满每个列。这些列必须是相同的,包括大小和样式。
容器相关属性
column-count
column-count,描述元素应该被分割的列数。
语法:
column-count: number|auto;
-
number: 内容被划分的最大列数。如果column-width也设置了非零值,实际列数可能小于column-count的值。column-count: 100; column-width: 100px;实际只有 5 列:
-
auto:列的数量由其他 CSS 属性指定,例如:column-widthcolumn-count: auto; column-width: 200px;
column-width
column-width,设置列的理想宽度。
在需要填充可用空间时可能会更宽(比如,column-count 更小时),当可用空间太小时可能会更窄(比如,容器宽度太小)。
<length>,非负数,百分比无效。auto,列宽取决于其他属性,例如column-count。
columns
column-width 与 column-count 的简写属性。
语法:
columns: column-width column-count;
column-fill
column-fill,指定如何填充列:
-
balance:默认值,尽量将内容平均分配。 -
auto:按顺序填充
column-gap
column-gap,指定列与列之间的间隙。
normal:在Multi-column布局时默认间隔为1em,其他类型布局默认间隔为0。<length>:非负数。<percentage>:非负数,基于容器的宽。
这个属性一开始是 Multi-column 布局 下的特有属性,但是现在在 Flexible Box(弹性盒子)以及 Grid layouts(网格布局)中都可以使用。
关于它的兼容性问题,IE 不兼容,但在 Edge 中已经兼容:
column-rule
在多列布局中,column-rule,描述了列与列之间的直线的样式,它也是所有 column-rule-\* 属性的简写,column-rule-width,column-rule-style 和 column-rule-color。
语法:
column-rule: column-rule-width column-rule-style column-rule-color;
可以按 border 一样记忆。
-
column-rule-color:指定两列间边框的颜色 -
column-rule-style:指定两列间边框的样式 -
column-rule-width:指定两列间边框的厚度
列相关属性
column-span
column-span,指定元素是否要跨越所有的列
none,默认值,不跨列。all,元素横跨所有列。该元素新建一个 BFC,在元素之前的正常流中的内容在所有列之间自动平衡。