Masonry layout 瀑布流布局

/MAY-sun-ree LAY-owt/ · noun · 内容类模式 · #134

一种卡片网格:每列宽度相同,卡片保留各自的高度,所以各列结束的位置不同,但卡片之间没有空隙,像砌墙的石头。Pinterest 让它广为人知;相册、作品集和博客常用它展示形状不一的图片。和 bento 网格不同,它的排布由内容决定,而不是事先排好。

Masonry layout(瀑布流布局) UI 模式示例:CatchUI 图鉴标本

别名:瀑布流。

你可能会这样叫它

  • “Pinterest 那种图片墙”
  • “高矮不一的图片网格”
  • “小红书首页那种双列卡片”
  • “错落排列的卡片”

……它的名字是 瀑布流布局(Masonry layout)。

常见问题

瀑布流布局是什么意思?

瀑布流布局(masonry layout)是一种列宽相同、卡片高度各不相同的网格:每张卡片紧接着放进当前最短的一列,所以各列参差不齐,但卡片之间没有空隙。Pinterest、小红书首页的双列卡片都是瀑布流,适合展示比例不一的图片。

瀑布流布局优缺点有哪些?

优点是能紧凑地展示高矮不一的图片,不留空白,配合无限滚动适合随意浏览。缺点是阅读顺序容易乱,眼睛和键盘焦点会在列之间跳;没有固定的行,不好比较内容,也不方便找回刚才看到的那张;图片要先占好高度,否则加载时页面会跳。

代码里叫什么

Web (CSS)column-count break-inside: avoid display: grid-lanes 原生瀑布流是 display: grid-lanes,目前只有 Safari 26.4 及以上支持;其他浏览器用多列布局或 JS 库
JavaScriptMasonry imagesLoaded
Jetpack ComposeLazyVerticalStaggeredGrid
Android (Views)StaggeredGridLayoutManager
FlutterMasonryGridView 来自 flutter_staggered_grid_view 包
SwiftUILayout 没有瀑布流视图:自定义 Layout,或在 HStack 里放两列 VStack

复制给 AI 编程工具

把这些图片排成瀑布流:等宽的列(手机 2 列,宽屏 3 到 4 列),每张卡片保持图片原有的宽高比,下一张放进当前最短的那一列。图片加载前先占好高度,避免页面跳动;阅读顺序和 Tab 顺序尽量和视觉顺序一致;快滚到底时继续加载更多卡片。

用 AI 写界面时该怎么说:UI 用词指南(英文)→

相关模式

网站各部分叫什么(英文)→

传一张截图,抓住这个模式 →

学会从视觉线索认出 UI 模式(英文)