R3.03.2content-driven layout reduces breakpoints设计

内容驱动的布局减少断点数量

别名: 少断点 · 弹性换行代替档位 · flex wrap over media bands

概念解释

命名断点是在猜「到某宽度就要换一套结构」。卡片自己会换行、网格按 minmax 自动少一列、工具条在放不下时折到下一行,换档发生在这份内容在这个槽里刚好放不下的那一像素,常常不是 768 或 1024。让内容把布局撑开、折回,需要维护的命名断点就会变少。

少断点不是禁止断点。信息结构必须改(三列变成带导航的单列、表格改成定义列表)时,仍然要一档明确的结构切换。能靠换行和自动列数解决的,就不要再开一档平行布局。

机制

每一档命名断点都是一份要单独维护的布局程序:状态、文案长度、密度、错误态都要在这一档再走一遍。档越多,漏测的组合越多。内容驱动的规则(flex 换行、auto-fill、子项最小宽度)没有「手机档 / 桌面档」这份程序,只有「这项有没有达到最小宽度」。换列发生在 347px 还是 801px,由内容决定,不需要人事先点名。

猜档位还会猜错:同一档里一张卡片标题很短、另一张很长,短的还早、长的已经该折。内容规则让长的先折、短的继续并排,不必为它们各开一档。剩下的命名断点应只承担「结构换了」——导航位置、主次栏有无——而不是承担「这排按钮挤不挤」。

边界

编辑性很强、必须在指定宽度换成另一套艺术方向的页面(杂志封面、营销叙事)会保留较多命名断点,内容换行替代不了换叙事。不能折行的表格、地图、画布,最小宽度以下只能改结构或出滚动,这时断点是结构切换,不是失败。品牌要求「桌面永远三列」是一种结构约束,应写成结构断点,不要假装成内容折行后又用例外钉死列数。组件内部已经用内容规则折行时,外壳再叠一套几乎相同的视口档,数量会不减反增。

怎么落地

  • 默认用换行、最小宽度、自动列数处理并排项;只有结构必须改变时才增加命名断点,并写明这一档改的是什么结构。
  • 盘点现有断点:只改变间距或列数、不改变信息结构的,优先改成内容规则并删掉该档。
  • 连续拖拽宽度检查,而不是只在几个常用设备宽度截图。
  • 验证:从最窄拖到最宽,数出真正不同的布局程序有几套。每一套都要能说出结构上的理由。说不出理由、只是「到了某宽度换一列」的档,就是本可以交给内容的多余断点。

延伸

  • 同组R3.03.1 断点应基于容器而非仅视口 · R3.03.3 缩放与字号设置需同时验证
  • 相邻K2.01 窗口管理 · R3.11 响应式实现与断点策略
  • 站内检索content-driven layout · fewer breakpoints · auto-fit grid

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/R3.03.2