您现在的位置是:网站首页> 编程资料编程资料
3种方式实现瀑布流布局小结详解纯css实现瀑布流(multi-column多列及flex布局)css3 column实现卡片瀑布流布局的示例代码用CSS3实现瀑布流布局的示例代码CSS3实现瀑布流布局与无限加载图片相册的实例代码瀑布流布局的两种实现方式:传统多列浮动和绝对定位布局waterfall瀑布流布局+动态渲染的实现
2021-08-31
1118人已围观
简介 这篇文章主要介绍了3种方式实现瀑布流布局小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言
今天逛闲鱼的时候观察到每一行的高度不是相同的,经了解才知道原来这是一种瀑布流布局,感觉挺有意思,于是决定研究一下,在网上也找了一些方案,实现瀑布流大概有3种方式。
一、JS 实现瀑布流
思路分析
- 瀑布流布局的特点是等宽不等高。
- 为了让最后一行的差距最小,从第二行开始,需要将图片放在第一行最矮的图片下面,以此类推。
- 父元素设置为相对定位,图片所在元素设置为绝对定位。然后通过设置 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 距离。
代码实现:
效果如下:

四、3种方式对比
如果只是简单的页面展示,可以使用 column 多栏布局和 flex 弹性布局。如果需要动态添加数据,或者动态设置列数,就需要使用到 JS + jQuery。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- Html5 页面适配iPhoneX(就是那么简单)详解html5页面 rem 布局适配方法有关HTML5页面在iPhoneX适配问题
- html5 外链式实现加减乘除的代码html输入两个数实现加减乘除功能
- three.js模拟实现太阳系行星体系功能基于three.js的炫酷视觉动画景观特效Three.js+TweenMax.js实现带有现代科技感的信号传输隧道动画效果源码HTML5+Three.js实现的骑着单车环游太空动画效果源码
- HTML5 3D书本翻页动画的实现示例css transform 翻页动画记录的实现使用纯CSS实现书籍3D翻页效果的示例很酷的HTML5电子书翻页动画特效一个不错的html 打印代码支持翻页css实现点击滚动翻页的效果(无js)css3实现书本翻页效果的示例代码
- 详解canvas绘制网络字体几种方法html5 canvas绘制网络字体的常用方法
- 5分钟实现Canvas鼠标跟随动画背景ES6与canvas实现鼠标小球跟随效果html5 canvas实现跟随鼠标旋转的箭头
- HTML5实现无刷新修改URL的方法Html5无刷新修改browser Url的方法详解HTML5之pushstate、popstate操作history,无刷新改变当前urlHTML5无刷新改变当前url的代码基于HTML实现表单提交后不刷新页面 HTML5 History API 实现无刷新跳转 仿163网盘无刷新文件上传 for Php HTML网页中无刷新的更换CSS样式-CSS教程-网页制作-网页教学网
- iframe跨域的几种常用方法详解使用postMessage解决iframe跨域通信问题跨域修改iframe页面内容详解关于iframe跨域使用postMessage的实现HTML5 window/iframe跨域传递消息 API介绍Iframe 高度自适应(兼容IE/Firefox、同域/跨域)
- Canvas环形饼图与手势控制的实现代码canvas实现有递增动画的环形进度条的实现方法详解利用canvas实现环形进度条的方法canvas环形倒计时组件的示例代码
- Html5监听手机摇一摇事件的实现基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例Html5+JS实现手机摇一摇功能用HTML5实现手机摇一摇的功能的教程



