为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面,这种布局在报纸和杂志上都使用了几十年了,但要在Web页面上实现这样的效果还是有相当大的难度,庆幸的是,CSS3的多列布局可以轻松实现。接下来咱们一起学习多列布局相关的知识。
多列布局
一、多列布局columns 语法:
columns: ||
多列布局columns属性参数主要就两个属性参数:列宽和列数。
column-width:主要用来定义多列中每列的宽度
column-count:主要用来定义多列中的列数
兼容性:到目前为止大部分主流浏览器都对其支持:
使用:要显示2栏显示,每栏宽度为200px,代码为:
columns: 200px 2;
代码实现:
<style> .column{ width: 500px; height: 180px; border:2px solid green; columns: 120px 3; } style><body> <div class="column"> <p> 画画的baby、画画的baby、奔驰的小野马和带刺的玫瑰、我说不开心也拍手、拍走伤痕累累、用干涩的眼泪、酿出香醇肥美、 虽比茅台般辣、却有温柔的heart、开心就拍手、一给我里Giao Giao p> <p> 画画的baby、画画的baby、奔驰的小野马和带刺的玫瑰、我说不开心也拍手、拍走伤痕累累、用干涩的眼泪、酿出香醇肥美、 虽比茅台般辣、却有温柔的heart、开心就拍手、一给我里Giao Giao p> div>
效果图:
二、列宽column-width
column-width的使用和CSS中的width属性一样,不过不同的是,column-width属性在定义元素列宽的时候,既可以单独使用,也可以和多列属性中其他属性配合使用。其基本语法如下所示 ;
column-width: auto |
取值说明:
auto:如果column-width设置值为auto或者没有显式的设置值时,元素多列的列宽将由其他属性来决定,比如前面的示例就是由列数column-count来决定。
length:使用固定值来设置元素列的宽度,其主要是由数值和长度单位组成,不过其值只能是正值,不能为负值。
使用:
column-width:100px
三、列数column-count
column-count属性主要用来给元素指定想要的列数和允许的最大列数。其语法规则:
column-count:auto |
取值说明:
auto:此值为column-count的默认值,表示元素只有一列,其主要依靠浏览器计算自动设置。
integer:此值为正整数值,主要用来定义元素的列数,取值为大于0的整数,负值无效。
使用:
column-count:4
总结:
columns是column-width和column-count的总写。
四、列间距column-gap
column-gap主要用来设置列与列之间的间距,其语法规则如下:
column-gap: normal ||
取值说明:
normal:默认值,默值为1em(如果你的字号是px,其默认值为你的font-size值)。
length:此值用来设置列与列之间的距离,其可以使用px,em单位的任何整数值,但不能是负值。
使用:
column-gap: 2em;
五、列表边框column-rule
column-rule主要是用来定义列与列之间的边框宽度、边框样式和边框颜色。简单点说,就有点类似于常用的border属性。但column-rule是不占用任何空间位置的,在列与列之间改变其宽度不会改变任何列的位置。
语法规则:
column-rule:||
取值说明:
column-rule-width:类似于border-width属性,主要用来定义列边框的宽度,其默认值为“medium”,column-rule-width属性接受任意浮点数,但不接收负值。但也像border-width属性一样,可以使用关键词:medium、thick和thin。
column-rule-style:类似于border-style属性,主要用来定义列边框样式,其默认值为“none”。column-rule-style属性值与border-style属值相同,包括none、hidden、dotted、dashed、solid、double、groove、ridge、inset、outset。
column-rule-color:类似于border-color属性,主要用来定义列边框颜色,其默认值为前景色color的值,使用时相当于border-color。column-rule-color接受所有的颜色。如果不希望显示颜色,也可以将其设置为transparent(透明色)。
使用:
column-rule: 2px dotted green;
六、跨列设置column-span
column-span主要用来定义一个分列元素中的子元素能跨列多少。column-width、column-count等属性能让一元素分成多列,不管里面元素如何排放顺序,他们都是从左向右的放置内容,但有时我们需要其中一段内容或一个标题不进行分列,也就是横跨所有列,此时column-span就可以轻松实现,此属性的语法如下。
column-span: none | all
取值说明:
none:此值为column-span的默认值,表示不跨越任何列。
all:这个值跟none值刚好相反,表示的是元素跨越所有列,并定位在列的Z轴之上。
使用:
column-span:all;
七、填充列column-fill
浏览器支持:主流浏览器都不支持 column-fill 属性。
语法:
column-fill: balance|auto;
取值说明:
balance:对列进行协调。浏览器应对列长度的差异进行最小化处理。
auto:按顺序对列进行填充,列长度会各有不同。
学完了这个,你可以试着自己练习一下。