先来欣赏三个瀑布流的网站
什么是瀑布流?
瀑布流,又称瀑布流式布局。
这种布局适合于小数据块,每个数据块内容相近且没有侧重。通常,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。
瀑布流的三种实现方式
固定列宽的多列布局 示例代码
CSS3多列布局 示例代码
绝对定位方式 示例代码
固定列宽的多列布局
优点
布局简单,实现容易不用明确知道数据块高度,当数据块中有图片时,就不需要指定图片高度。
缺点
列数固定,扩展不易,当浏览器窗口大小变化时,只能固定的x列,如果要添加一列,很难调整数据块的排列;
滚动加载更多数据时,还要指定插入到第几列中,还是不方便.
CSS3多列布局
优点
直接 CSS 定义,最方便了扩展方便,直接往容器里添加内容即可
缺点
只有高级浏览器中才能使用;
还有一个缺点,他的数据块排列是从上到下排列到一定高度后,再把剩余元素依次添加到下一列,这个本质上就不一样了;
鉴于这两个主要缺点,注定了该方法只能局限于高端浏览器,而且,更适合于文字多栏排列。
浏览器对column-count属性的支持情况
绝对定位方式
优点
最优的一种方案,方便添加数据内容,窗口变化,列数/数据块都会自动调整;
缺点
需要实现知道数据块高度,如果其中包含图片,需要知道图片高度;
JS 动态计算数据块位置,当窗口缩放频繁,可能会狂耗性能
常用的瀑布流插件
使用方式
jQuery Masonry (MIT Licence)
Wookmark-jQuery (MIT Licence)
Isotope ( GPL v3 License)
相关阅读