CSS3尝鲜(一):CSS多列布局

CSS3规范中的多列布局(或者叫分栏)已经于2009年12月17日被W3C作为预推荐标准(Candidate Recommendation)进行发布。该模块的在 W3C上的地址为:http://www.w3.org/TR/css3-multicol/。W3C规范定义的实现多列布局的属性有:

属性名 可能的值 默认值 应用元素
break-after auto | always | avoid | left | right | page | column | avoid-page | avoid-column auto 块级元素
break-before auto | always | avoid | left | right | page | column | avoid-page | avoid-column auto 块级元素
break-inside auto | avoid | avoid-page | avoid-column auto 块级元素
column-count <integer> | auto auto 非替换的块级元素(table元素除外)、表格单元格、行内块元素
column-fill auto | balance balance 多列元素
column-gap <length> | normal normal 多列元素
column-rule <column-rule-width> || <border-style> || [ <color> | transparent ] 同单个元素 多列元素
column-rule-color <color> color值 多列元素
column-rule-style <‘border-style’> none 多列元素
column-rule-width <‘border-width’> medium 多列元素
columns <‘column-width’> || <‘column-count’> 同单个元素 非替换的块级元素(table元素除外)、表格单元格、行内块元素
column-span 1 | all 1 静态、非浮动元素
column-width <length> | auto auto 非替换的块级元素(table元素除外)、表格单元格、行内块元素

在我们经常阅读的报纸中,一般情况下一个版面被分成多个列进行排版,或者在一般的杂志中,一页被分成2列排版。在CSS3颁布之前,在HTML中实现这样的功能是非常麻烦的。现在,CSS3规范中对多列布局进行了定义,使用CSS样式单就可以轻松搞定了。支持的浏览器目前有:Firefox、 Chrome、Safari等。目前,这些浏览器对该标准的支持采取还是扩展的方法,也就是采用-moz、-webkit等浏览器特有的属性,但是,这并不影响对W3C标准的理解。

下面我就举一个简单的例子。下面例子中的div1这个元素,采用column-count属性将div显示的内容划分为2列显示,由于没有特别设置每列的宽度,则列的宽度是自动平均分配的。div2这个div,设置列的宽度和列间距,另外还设置列与列之间的分割线的样式。注意:要查看div2的效果,则浏览器的窗口要宽一些。

 

view plain copy to clipboard print ?
  1. <style type="text/css" mce_bogus="1">#div1{   
  2. -moz-column-count:2;   
  3. -webkit-column-count:2;   
  4. }   
  5. #div2{   
  6. border:6px solid orange;   
  7. padding:6px;   
  8. text-align:justify;   
  9. -moz-column-width:20em;   
  10. -moz-column-gap:3em;   
  11. -moz-column-rule:6px solid blue;   
  12. -webkit-column-width:20em;   
  13. -webkit-column-gap:5em;   
  14. -webkit-column-rule:6px solid blue;   
  15. }</style>   
  16. <div id="div1">   
  17.   当春风再一次吹拂她的脸庞时,那场让她刻骨铭心的失恋已在煦风轻扬的季节淡去了。她一点点地恢复,仿佛重生一般,花儿般的笑颜又重新浮上了她的脸庞。而他,看到她康复的样子,高兴极了,但他却不会讲什么,依旧如故,默默地陪在她身旁。他爱她,就包括爱她的一切缺点。这样做,他并不觉得有失尊严。他认为既然爱了,就应该无怨无悔。而她,觉得开始有点喜欢上了他,有些依赖他。但她认为,离爱还很遥远。<br/>   
  18.   转眼她和他都要毕业了,她甚至没有征求他的意见,就直接去了北方的一座城市,而他,却追随着她也到了这里。本来,在南方那座城市,他的家人早已给他联系好了一家不错的公司,但他连想都没想就拒绝了。她和他分别进了不同的公司。同在一个陌生的城市打工,难免心神俱疲,这个时候,她就很想找一个依靠,给她一点家的温暖。明明知道他一直愿意做她的依靠,可她却不愿意把自己的一生交付于他,因为她觉得自己一直不爱他,不爱,又如何依靠,再说,他也不能提供给她想像中的生活。   
  19. </div>     
  20. <hr/>   
  21. <div id="div2">   
  22.   当春风再一次吹拂她的脸庞时,那场让她刻骨铭心的失恋已在煦风轻扬的季节淡去了。她一点点地恢复,仿佛重生一般,花儿般的笑颜又重新浮上了她的脸庞。而他,看到她康复的样子,高兴极了,但他却不会讲什么,依旧如故,默默地陪在她身旁。他爱她,就包括爱她的一切缺点。这样做,他并不觉得有失尊严。他认为既然爱了,就应该无怨无悔。而她,觉得开始有点喜欢上了他,有些依赖他。但她认为,离爱还很遥远。<br/>   
  23.   转眼她和他都要毕业了,她甚至没有征求他的意见,就直接去了北方的一座城市,而他,却追随着她也到了这里。本来,在南方那座城市,他的家人早已给他联系好了一家不错的公司,但他连想都没想就拒绝了。她和他分别进了不同的公司。同在一个陌生的城市打工,难免心神俱疲,这个时候,她就很想找一个依靠,给她一点家的温暖。明明知道他一直愿意做她的依靠,可她却不愿意把自己的一生交付于他,因为她觉得自己一直不爱他,不爱,又如何依靠,再说,他也不能提供给她想像中的生活。   
  24. </div>  

<style type="text/css" mce_bogus="1">#div1{ -moz-column-count:2; -webkit-column-count:2; } #div2{ border:6px solid orange; padding:6px; text-align:justify; -moz-column-width:20em; -moz-column-gap:3em; -moz-column-rule:6px solid blue; -webkit-column-width:20em; -webkit-column-gap:5em; -webkit-column-rule:6px solid blue; }</style> <div id="div1">   当春风再一次吹拂她的脸庞时,那场让她刻骨铭心的失恋已在煦风轻扬的季节淡去了。她一点点地恢复,仿佛重生一般,花儿般的笑颜又重新浮上了她的脸庞。而他,看到她康复的样子,高兴极了,但他却不会讲什么,依旧如故,默默地陪在她身旁。他爱她,就包括爱她的一切缺点。这样做,他并不觉得有失尊严。他认为既然爱了,就应该无怨无悔。而她,觉得开始有点喜欢上了他,有些依赖他。但她认为,离爱还很遥远。<br/>   转眼她和他都要毕业了,她甚至没有征求他的意见,就直接去了北方的一座城市,而他,却追随着她也到了这里。本来,在南方那座城市,他的家人早已给他联系好了一家不错的公司,但他连想都没想就拒绝了。她和他分别进了不同的公司。同在一个陌生的城市打工,难免心神俱疲,这个时候,她就很想找一个依靠,给她一点家的温暖。明明知道他一直愿意做她的依靠,可她却不愿意把自己的一生交付于他,因为她觉得自己一直不爱他,不爱,又如何依靠,再说,他也不能提供给她想像中的生活。 </div> <hr/> <div id="div2">   当春风再一次吹拂她的脸庞时,那场让她刻骨铭心的失恋已在煦风轻扬的季节淡去了。她一点点地恢复,仿佛重生一般,花儿般的笑颜又重新浮上了她的脸庞。而他,看到她康复的样子,高兴极了,但他却不会讲什么,依旧如故,默默地陪在她身旁。他爱她,就包括爱她的一切缺点。这样做,他并不觉得有失尊严。他认为既然爱了,就应该无怨无悔。而她,觉得开始有点喜欢上了他,有些依赖他。但她认为,离爱还很遥远。<br/>   转眼她和他都要毕业了,她甚至没有征求他的意见,就直接去了北方的一座城市,而他,却追随着她也到了这里。本来,在南方那座城市,他的家人早已给他联系好了一家不错的公司,但他连想都没想就拒绝了。她和他分别进了不同的公司。同在一个陌生的城市打工,难免心神俱疲,这个时候,她就很想找一个依靠,给她一点家的温暖。明明知道他一直愿意做她的依靠,可她却不愿意把自己的一生交付于他,因为她觉得自己一直不爱他,不爱,又如何依靠,再说,他也不能提供给她想像中的生活。 </div>

 

如果使用Firefox 3.5、Google Chrome或者Safari4的浏览器,就可以看到上面的例子被显示了多列的布局。

你可能感兴趣的:(css,浏览器,生活,div,firefox,Safari)