您现在的位置是:网站首页> 编程资料编程资料
详解纯css实现瀑布流(multi-column多列及flex布局)3种方式实现瀑布流布局小结css3 column实现卡片瀑布流布局的示例代码用CSS3实现瀑布流布局的示例代码CSS3实现瀑布流布局与无限加载图片相册的实例代码瀑布流布局的两种实现方式:传统多列浮动和绝对定位布局waterfall瀑布流布局+动态渲染的实现
2023-10-20
343人已围观
简介 这篇文章主要介绍了详解纯css实现瀑布流(multi-column多列及flex布局)的相关资料,用multi-column多列布局及flex布局实现瀑布流,感兴趣的小伙伴们可以参考一下
瀑布流的布局自我感觉还是很吸引人的,最近又看到实现瀑布流这个做法,在这里记录下,特别的,感觉flex布局实现瀑布流还是有点懵的样子,不过现在就可以明白它的原理了
1.multi-column多列布局实现瀑布流
先简单的讲下multi-column相关的部分属性
column-count设置列数column-gap设置列与列之间的间距column-width设置每列的宽度
还要结合在子容器中设置break-inside防止多列布局,分页媒体和多区域上下文中的意外中断
break-inside属性值
- auto 指定既不强制也不禁止元素内的页/列中断。
- avoid 指定避免元素内的分页符。
- avoid-page 指定避免元素内的分页符。
- avoid-column 指定避免元素内的列中断。
- avoid-region 指定避免元素内的区域中断。
截取了部分,可自己填充
/* html文件 */牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
/* css样式 */ body { background: #e5e5e5; } /* 瀑布流最外层 */ #root { margin: 0 auto; width: 1200px; column-count: 5; column-width: 240px; column-gap: 20px; } /* 每一列图片包含层 */ .item { margin-bottom: 10px; /* 防止多列布局,分页媒体和多区域上下文中的意外中断 */ break-inside: avoid; background: #fff; } .item:hover { box-shadow: 2px 2px 2px rgba(0, 0, 0, .5); } /* 图片 */ .itemImg { width: 100%; vertical-align: middle; } /* 图片下的信息包含层 */ .userInfo { padding: 5px 10px; } .avatar { vertical-align: middle; width: 30px; height: 30px; border-radius: 50%; } .username { margin-left: 5px; text-shadow: 2px 2px 2px rgba(0, 0, 0, .3); }

2.flex布局实现瀑布流将外层设置为row布局,然后再设置一个容器并设置为column布局,它是将列作为一个整体,然后在对列进行划分,在列里进行宽固定来实现的
/* html文件(只截取两列布局)*/牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
牵起你的左手护着你
/* css文件 */ body{ background: #e5e5e5; } #root{ display: flex; flex-direction: row; margin: 0 auto; width: 1200px; } .itemContainer{ margin-right: 10px; flex-direction: column; width: 240px; } .item{ margin-bottom: 10px; background: #fff; } .itemImg{ width: 100%; } .userInfo { padding: 5px 10px; } .avatar { vertical-align: middle; width: 30px; height: 30px; border-radius: 50%; } .username { margin-left: 5px; text-shadow: 2px 2px 2px rgba(0, 0, 0, .3); }
实践后发现,纯css实现的瀑布流只能是一列一列的排布,所以还是得用js来实现瀑布流更符合我们常见的瀑布流
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 使用css使div占满整个屏幕的实现方法详解CSS3原生支持div铺满浏览器的方法
- 详解CSS3原生支持div铺满浏览器的方法
- CSS实现图片等比例缩小不变形的实例代码关于css控制图片大小不变形的实现思路CSS完美解决前端图片变形问题的方法
- css实现带箭头和圆点的轮播通过css动画实现一个表格滚动轮播效果CSS3制作轮播图的一种方法纯HTML和CSS实现JD轮播图效果利用 CSS3 实现的无缝轮播功能代码HTML+CSS+JS实现堆叠轮播效果的示例代码
- 23种CSS垂直居中技巧
- 全民飞机大战宠物炽焰龙好不好 多少钱_手机游戏_游戏攻略_
- 天天酷跑0.1元换购钻石活动详细介绍_手机游戏_游戏攻略_
- 全民飞机大战烈焰凤凰好不好 战烈焰凤凰技能属性介绍_手机游戏_游戏攻略_
- 熊出没之熊大快跑常见问题详细介绍_手机游戏_游戏攻略_
- 天天飞车烧饼修改器无限隐身无限油最新百万教程_刷金币刷分心得_手机游戏_游戏攻略_








