瀑布流的实现


法一:JS+CSS实现

  1. 瀑布流布局的特点是等宽不等高。
  2. 为了让最后一行的差距最小,从第二行开始,需要将图片放在第一行最矮的图片下面,以此类推。
  3. 父元素设置为相对定位,图片所在元素设置为绝对定位。然后通过设置 top 值和 left 值定位每个元素。



    


法二:column 多行布局实现瀑布流

column 实现瀑布流主要依赖两个属性。
一个是 column-count 属性,是分为多少列。
一个是 column-gap 属性,是设置列与列之间的距离。




    


法三:flex 弹性布局实现瀑布流

flex 实现瀑布流需要将最外层元素设置为 display: flex,即横向排列。

然后通过设置 flex-flow:column wrap 使其换行。设置 height: 100vh 填充屏幕的高度,来容纳子元素。

每一列的宽度可用 calc 函数来设置,即 width: calc(100%/3 - 20px)。分成等宽的 3 列减掉左右两遍的 margin 距离




    


CSS