CSS columns分栏布局和break-inside属性

Multiple-column布局,也称多列布局、多栏布局,我自己喜欢叫做分栏布局,这种布局可以讲内容布局到一组列框,类似于报纸上的排版。

报纸分栏排版

 

分栏布局非常特殊,有别于传统布局方法,它将包括包括所有子元素在内的所有内容拆分为列,这与我们打印网页时候时页面内容分割成不同的页面的方式类似。

分栏布局IE10+都可以使用,API稳定,移动端兼容性比flex布局要好,虽然设计初衷不一样,但很多布局都可以实现。甚至某些场景下,只能使用分栏布局才能实现。很有学习的必要。

直接相关CSS属性(这里主要就说column-width和break-inside)

1.column-width

column-width表示每一栏/列的最佳宽度。

如果我们只设定column-width,浏览器会自动根据现有容器宽度划分栏目的个数。

语法如下:

column-width: <length> | auto;

其中:

<length>

表示设定的最佳列宽值。实际呈现的每一栏的宽度可能与指定值不同,具体内容参见下面的细节描述。

auto

默认值。表示每一栏的宽度由其它CSS属性决定,例如column-count

一些细节:

  1. column-width 有时候会无效。例如容器宽度400像素,设定的每一栏宽度是300像素,不足以分栏,此时内容填充填充表现为充分利用可用空间,最终呈现的列宽比设定的更宽。又例如容器宽度400像素,column-width设置为500像素,则最终分栏宽度不会超过容器宽度,比设定的500像素要小。
  2. column-width 不支持负值,也不支持百分比值。

2.break-inside

break-inside这个CSS属性定义页面、列或区域发生中断时候的元素该如何表现。如果没有中断,则忽略该属性。

break-inside支持属性相对少一些,同样的,我们目前只要关注下面两个属性值就好了:

break-inside: auto;
break-inside: avoid;

其中:

auto

元素可以中断。

avoid

元素不能中断。

文字断行显示

有时候,我们希望我们的条目一个元素一个元素都是独立的,前后都不断开,此时,就可以使用break-inside:avoid实现:

此时效果如下截图:

前后不断开的效果截图

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值