HTML常使用的布局方法——多列布局

CSS3中提供的新属性columns,是用于多列布局的。

在这之前,有些大家习以为常的排版,要用CSS动态实现其实是比较困难的。如下方的排版,类似于报纸排版:

在不知columns属性之前,这种效果想想确实很难实现,因为内容是动态的。搞div容易,但每个div内放多少文字呢?一篇文章该在哪行哪段剪切进不同的div内呢?你肯定不愿意为每一段文字,都在特定的地方插入div标签,简直要疯了。而使用columns它可以让浏览器确定何处结束一列和开始下一列,简单的说,就是CSS3多列布局可以自动将内容按指定的列数排列。多列布局的主要属性有:

column-width: 类似于给列定义一个最小宽度

column-count: 指定想要的列数或者说是最大列数

column-gap: 定义列间距,相当于margin属性

column-rule: 定义列边框,相当于border,不过它不占任何空间

column-span: 定义多列布局中子元素的跨列效果

column-fill: 控制每列的列高应该是一样的还是自适应的,浏览器支持情况较差。不建议使用


属性的详细介绍:

column-width给列定义个最小的宽度。默认值为auto表示将根据column-count列的数量自动调整列宽。

column-count最大列数,不赘述。

通常上面两个参数都合并在columns中一起指定。

column-gap是列间距,默认值normal,相当于1em。需要注意的是,如果column-gap与column-width加起来大于总宽度的话,就无法显示column-count指定的列数,会被浏览器自动调整列数和列宽

column-rule用于设置列的边框,类似于border,区别是不占用任何空间,因此设了column-rule不会导致列宽的变化。另外如果边框宽度大于column-gap列间距,将不会显示边框。语法和border类似,例如column-rule: 1px solid #000;。效果见例子页面

column-span用于跨列,默认值none表示不跨列,all表示跨越所有列。例如文章标题可以设成all来跨列。效果见例子页面

column-fill用于统一列高。默认值auto各列的高度随内容自动调整,balance所有列高都设为最高的列高;

下面上一段代码,实现的效果如下:

HTML架构如下

scc的设置如下:

多列布局先介绍到这里,如果对您有所帮助的话,请点赞并关注哦,我会不定时的更新一下自己学习的经验以及见解,和大家进行交流。

您赞就是是我最大的动力!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 浅谈CSS3多列布局 相信大家都看过报纸,报纸上的内容大多数都是分栏显示的,如下图所示: 现在,强大的CSS3为我...
    haileym阅读 6,776评论 0 0
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,780评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,831评论 0 11
  • CSS3提供了个新属性columns用于多列布局。在这之前,有些大家习以为常的排版,要用CSS动态实现其实是比较困...
    张歆琳阅读 10,606评论 2 6
  • 他们太担心来世了,以至于都没学会怎样在这个世界上生活。 ——《杀死一只知更鸟》 CSS3新增了多列布局特性,它可以...
    BIGHAI阅读 3,146评论 0 0