css3 column实现卡片瀑布流布局

实现效果

  • 今天遇到了需要实现一个卡片的瀑布流布局的问题,卡片高度是不同的。
  • 最后使用css3中的column属性实现了这个布局,而且非常的简便啊(lz隐约记得上次写瀑布流的时候是用js实现的...naive啊)
  • 实现效果大概如下图~

css3 column实现卡片瀑布流布局

相关属性

  • column-count:想实现的列数,我这里只需要2列
  • column-width:列的宽度
  • column-gap:列之间的间隙
  • break-inside:avoid:如果不将子元素(每个卡片)设置这个属性的话,就会出现一张卡片被截断显示在不同的列中的情况

遇到的问题

  • 实现过程中遇到了一个小问题,我的卡片底部border会被截掉一块
  • 通过设置子元素的overflow:auto解决了

代码

.videoCards {
            padding-top: 4rpx;
            column-count: 2;
            column-gap: 18rpx;

            .card {
                display: inline-block;
                margin-top: 20rpx;
                width: 326rpx;
                background: #FFFFFF;
                box-shadow: 0 0 10rpx 0 rgba(0,0,0,0.10);
                border-radius: 14rpx;
                break-inside: avoid;
                padding-bottom: 20rpx;
                overflow: auto;
                }
        }

相关推荐