column 属性实现图片瀑布流

<body>
    <div>
        <img src="" />
        <img src="" />
        <img src="" />
        <img src="" />
    </div>
</body>

1、图片的宽度固定,但是列可变

div {
    column-width: 200px; // 宽度200px
    column-gap: 2px; // 列之间间隔2px
}

2、 列是固定的个数,然后图片根据屏幕的宽度进行自适应缩放

div {
    column-count: 4; // 列的个数为4
    column-gap: 2px; // 列之间间隔2px
}

但这种方法会出现截断的现象。如果填充瀑布流布局容器的每一项内容的高度不是相同的,都会出现这种某一项在一列底部空间不足以显示被截断一部分显示在另一列的顶部。

这是由于column多列属性规定的每列高度都是相同的,所以空间不足就会被截断。毕竟column只是将一个容器分成多列显示,都是同一个容器,肯定要保证高度相同。

在这里插入图片描述

解决方法:将每个项添加 break-inside: avoid 

拓展:

break-inside  CSS属性描述了在多列布局页面下的内容盒子如何中断,如果多列布局没有内容盒子,这个属性会被忽略。

break-inside: auto;
break-inside: avoid;
break-inside: avoid-page;
break-inside: avoid-column;
break-inside: avoid-region;

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

auto (默认值)  :允许 (既不禁止也不强制) 在主框中插入任何中断 (页、列或区域)。

avoid-page :避免主框中任何页的中断点

avoid-column :避免主框中任何列的中断点

avoid-region 实验性 避免原则框内的任何区域中断。

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

参考文档:瀑布流布局:CSS3多列属性column实现_天外飞雨道沧桑的博客-CSDN博客_css3 瀑布流布局

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值