属性及版本CSS3提供了columns多列布局属性等7个属性集合,具体如下:
columns集成column-width和column-count两个属性
column-width定义每列列宽度
column-count定义分分列列数
column-gap定义列间距
column-rule定义列边框
column-span定义多列布局中子元素跨列效果,firefox不支持
column-fill控制每列的列高效果,主流浏览器不支持
由于column属性集尚未纳入标准,大多数浏览器必须使用厂商前缀才能访问,好在主流的浏览器都可以很好的支持了。
//完整形式
-webkit-columns:150px 4;
-moz-columns:150px 4;
columns:border-box;
属性解释为了方便演示,我们在Firefox火狐浏览器测试,只用-moz-前缀演示。
1.columns
columns是一个复合属性,包含columns-width和columns-count这两种简写。意为同时设置分列列数和分列宽度。
//分成四列,每列宽度自适应
-moz-columns:auto 4;
2.column-width
column-width属性,用于设置每列的宽度。
//设置列宽
-moz-column-width:200px;
这里设置了200px,有点最小宽度的意思。当浏览器缩放到小于200大小时,将变成1列显示。而如果是auto,则一直保持四列。
最小宽度是1列,而不是4列
auto默认值,自适应。
长度值设置列宽。
3.column-count
column-count属性,用于设置多少列。
//设置列数
-moz-column-count:4;
auto默认值,表示就1列。
数值设置列数。
4.column-gapcolumn-gap
属性,用于设置列间距
//设置列间距
-moz-column-gap:100px;
auto默认值,表示就1列。
数值设置列数。
/*如果没有设置列数,却设置了每列多少宽度,那么会自动设置列数*/
5.column-rule
column-rule属性,设置每列中间的分割线
//设置列边线-moz-column-rule:2px dashed gray;
column-rule<宽度><样式><颜色>的边框简写形式。
column-rule-width单独设置边框宽度。
column-rule-style单独设置边框的样式。
column-rule-color单独设置边框的颜色。
列边线不会影响到布局,它会根据布局的缩放自我调整是否显示。如果我们把页面缩放到只能显示一列时,它自动消失了。
6.column-span
column-span属性,设置跨列大标题。
//跨列标题,由于火狐尚未支持,固使用webkit
-webkit-column-span:all;
none默认值,表示不跨列。
all表示跨列。
div {
/* -moz-columns: auto 3;
-moz-columns: 150px 3;*/
/*如果没有设置列数,却设置了每列多少宽度,那么会自动设置列数*/
-moz-column-width: 150px;
-moz-column-count: 3;
-moz-column-gap: 50px;
-moz-column-rule: 2px dashed gray;
-webkit-column-width: 150px;
-webkit-column-count: 3;
-webkit-column-gap: 50px;
-webkit-column-rule: 2px dashed gray;
column-width: 150px;
column-count: 3;
column-gap: 50px;
column-rule: 2px dashed gray;
}
h1 {
text-align: center;
-moz-column-span: all;
-webkit-column-span: all;
column-span: all;
}