新闻中心
如何通过css grid实现瀑布流布局
使用CSS Grid模拟瀑布流可通过grid-template-columns分多列,结合grid-auto-rows和grid-row-end控制行跨度,配合JS动态计算高度实现兼容性好的布局效果。

实现瀑布流布局,使用 CSS Grid 是一种简洁高效的方式。虽然传统瀑布流常借助 J*aScript 或第三方库(如 Masonry),但现代 CSS Grid 配合 grid-template-rows: masonry 可以原生支持,不过目前浏览器支持有限。现阶段更稳定且广泛兼容的方法是通过 Grid 的列布局模拟瀑布流效果。
使用 CSS Grid 模拟瀑布流(兼容性好)
核心思路是将容器划分为多列,让子项自动在各列中按高度堆叠,形成错落有致的视觉效果。
关键步骤:
- 设置父容器为 display: grid
- 使用 grid-template-columns 定义多列(如 3 列)
- 设置 grid-auto-rows 为一个较小的基准行高(如 1px)
- 启用 grid-auto-flow: dense 让空隙被填充
- 每个子项通过 grid-row-end 占据与其内容高度成比例的行数
示例代码:
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 1px;
gap: 10px;
grid-auto-flow: dense;
}
<p>.item {
grid-row-end: span 10; /<em> 假设高度对应 10 行 </em>/
}</p><p>.item.tall {
grid-row-end: span 20; /<em> 更高的项目占更多行 </em>/
}</p>说明:通过 JS 动态计算每个项目的高度,并设置对应的 grid-row-end: span N,可以实现真正自适应的瀑布流。
使用 masonry 布局(实验性)
CSS 新增了对 masonry 布局的支持,语法更直观,但目前仅部分浏览器(如 Firefox Nightly)支持。
示例:
青泥AI
青泥学术AI写作辅助平台
360
查看详情
.container {
display: grid;
grid-template-rows: masonry;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
只需这一段 CSS,子元素会自动在列中垂直堆叠,无需手动计算行数。但因兼容性问题,生产环境暂不推荐。
配合 J*aScript 实现动态瀑布流
为了兼容性和灵活性,通常结合 JS 计算每列当前高度,将下一项插入最短列。
基本逻辑:
- 初始化每列高度数组
- 遍历每个子项,找到最短列
- 将该项定位到该列,更新列高
- 使用 position: absolute 或 CSS Transform 定位
虽然这不是纯 CSS 方案,但能完美控制布局,适合图片墙等场景。
基本上就这些。用 Grid 模拟瀑布流,关键是利用 grid-auto-rows + grid-row-end 控制占据行数,再配合 JS 动态赋值,就能实现流畅的视觉效果。masonry 模式未来可期,但现在还需耐心等待。
以上就是如何通过css grid实现瀑布流布局的详细内容,更多请关注其它相关文章!
# 就能
# 兰州营销推广路径
# seo目录优化网站
# 项目推广网站源码
# seo html 优化工具
# 肇庆seo前端优化
# 合肥网站建设正规公司
# 微小店怎么推广营销
# seo网络营销服务
# 佛山网站建设方案价格
# 阜新推广网站建设推广
# 只需
# 遍历
# css
# 选择器
# 是一种
# 两种类型
# 性好
# 中不
# 最短
# 行数
# ai
# 浏览器
# js
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
C#中解析不规范的HTML为XML 常见的坑与解决办法
Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践
QQ网页版官方账号入口 QQ网页版网页版登录指南
Golang如何优雅处理error_Golang error处理最佳实践总结
痛风发作了怎么办? 快速止痛和后期饮食调理
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
蛙漫移动版在线看 蛙漫手机浏览器直达入口
J*aScript Promise链中如何正确终止后续.then执行并处理错误
如何在 Windows 11 中启动游戏手柄设置
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
AngularJS $http POST请求数据传递与Go后端接收实践
深入理解Promise链:如何在catch后中断then的执行
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
j*a toString()的覆盖
win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】
小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】
Golang指针如何与map组合使用_Golang map指针组合实践
C++如何实现单例模式_C++设计模式之线程安全的单例写法
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
Win11怎么修改默认浏览器_Windows 11设置Chrome为默认
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
如何在网页中实现特定地点的随机图片展示
Surface怎么安装系统 微软Surface Pro U盘重装win11教程
《燕云十六声》两周内达九百万玩家!位居畅销榜第五
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台
QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录
没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享
Win11网速慢怎么解决 Win11网络设置优化解除限速
Angular Material 垂直步进器:实现底部到顶部排序的教程
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
4399体育竞技小游戏_4399小游戏赛事入口
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
晋江读书网页版在线登录 晋江读书电脑版官网
抓大鹅解压小游戏 抓大鹅摸鱼解压入口
绝地鸭卫平a核爆刀流玩法攻略
随机参数递归函数的基准调用次数与时间复杂度探究
《铁拳8》黑皮辣妹新实机:元气满满的18岁少女!
基于动态规划的房屋花卉种植最小成本算法详解
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看


2025-10-08
浏览次数:次
返回列表