css实现瀑布流布局

css实现瀑布流布局

实现思路

依赖 column 便可实现最简单实用瀑布流布局

代码

我这里前端框架用的是 vue, 用其他的也一样

html

<div class="waterfall">        <div v-for="(item,index) in 20"             :style="{height:heights[Math.floor(Math.random()*4)] + 'px',background:colors[Math.floor(Math.random()*12)]}"             :key="index">            {{item}}        </div></div>

Script

<script>    export default {        data() {            return {                //模拟随机高度                list: [200, 250, 150, 300],                //颜色尽量随机,区别每个模块                colors: ['#eccf2c', '#b8232c', '#125d9e', '#367945', '#fca91b', '#26ada7', '#77bfbf', '#ff5c87',                    '#f40', '#ee2061', '#feee39', '#f5a79a', '#ec70d0', '#b4a1cf']            }        }    }</script>

css

<style scoped>    .waterfall {        width: 400px;        margin: 0 auto;        column-count: 3;        column-gap: 10px;    }</style>

column-count: 3; 内容均分三份
column-gap: 10px; 列之间的间距
效果:

此时你会发现 8 和 15 分头行动了,此时还需要给子元素加一个属性。

break-inside: avoid;

这样就不会被分割了
如下:

具体需要什么效果看自己需求取舍就行。

兼容问题

肯定会有小伙伴说你这兼容性不行啊,ie 10 以下怎么办
解决办法也不是没有
那就是:
以后面试的时候先问好需不需要兼容 ie, 如果需要,赶紧撤乎,从根本上解决问题,还能省几根头发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值