CSS多栏布局(Multi-column Layout)可以方便快捷地实现文本分栏布局。
下表是每种浏览器支持多栏布局的最低版本,其中-ms-、-webkit-、-moz-、-o-这些前缀,指每种浏览器支持该类属性的最低版本浏览器中,需要加上这些前缀,比如在2.0版本的Firefox浏览器中如果要想用column-rule属性,则需要写成-moz-column-rule属性;剩下的以此类推。
属性 | |||||
---|---|---|---|---|---|
column-count | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-gap | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-rule | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-rule-color | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-rule-style | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-rule-width | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-span | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
column-width | 50.0 4.0 -webkit- |
10.0 | 52.0 2.0 -moz- |
9.0 3.1 -webkit- |
37.0 15.0 -webkit- 11.0 -o- |
多栏布局相关CSS属性如下所示:
column-count
column-gap
column-rule-style
column-rule-width
column-rule-color
column-rule
column-span
column-width
使用column-count
属性可以设置元素的分栏数目。如下列所示,分栏3列:
div { column-count: 3; }
通过CSS中的column-gap
可以设置多栏之间的空白距离。如下所示,栏距被定义为28px宽度:
div { column-gap: 28px; }
使用column-rule
属性可以定义分栏布局元素的分栏线样式、粗细、颜色,有点类似border
属性的味道。column-rule属性通吃了column-rule-style、column-rule-width、column-rule-color这三种属性。
案例1:使用column-rule-style、column-rule-width、column-rule-color三种属性
div { column-rule-style: solid; column-rule-width: 1px; column-rule-color: #46acb6; /* 一种蓝色 */ }
案例2:只使用column-rule属性(等价于案例1,但更推荐使用这种方式)
div { column-rule: 1px solid #46acb6; }
有时在多列布局中的某个元素需要跨列,这时就可以使用column-span
属性,把该属性设置成all
即可跨列显示,具体如下例所示。
另外注意一下,不包括属性继承那些,column-span
属性就只有2个具体取值,“1”和“all”:
1
- 代表不跨列(默认)all
- 跨全列
示例:
h3 { column-span: all; }
通过CSS中的column-width
属性可以设置分栏的宽度。但是该属性的取值只能是100px的整数倍。(跟font-weight属性有点像呵~)
div { column-width: 200px; }