F2.10.2usable widths between breakpoints设计
断点之间需保证连续可用
别名: 断点之间 · in-between widths · 中间宽度
概念解释
设计稿停在 375 和 1440,用户却活在 412、820、1280。768 起两列、1200 起三列,1199 上两列被拉到行长 90 字符——断点之间的槽不是「不算数的宽度」。连续可用的意思是:每一个实际窗口宽,主任务都能做完,不只是两个设计稿宽度。
这不是在提倡必须流式(连续变形),而是禁止把中间宽度当成无人区。
机制
视口是连续变量,断点只是你采样的几个状态。自适应布局在断点处跳变,两个采样之间靠拉伸填;流式布局全程在插值。无论哪种,中间宽度都会长出行长过长、剩余一条细缝、粘性栏和内容重叠这类病。只验收采样点,等于从未看见这些病。
真实设备还会叠加系统栏、分屏、桌面缩放,名义上的「768 平板」很少以 768 整像素出现。中间宽度才是众数。
边界
画布类、游戏视口有时只支持若干离散分辨率,中间宽度会被信箱或裁切,谈不上连续可用。固定像素的广告位、嵌入第三方控件也可能在中间宽溢出,那是嵌入物的错,但你仍要决定是给它滚动还是在更早的点切换结构。
极窄(小于内容最小字号所能活的宽度)可以拒绝,用横向滚动或提示旋转,不必假装 240 px 也「可用」。拒绝要显式,不能静默坏掉。
怎么落地
- 验收清单不要只写设计稿宽,至少加上 360、390、412、600、820、1024、1280、1366。
- 对每个中间宽走一条主路径(读完、提交、比较),失败就在最近的内容失效点加结构切换,或给该模块加 min/max 以免被拉坏。
- 验证:用可拖拽的窗口从窄拖到宽,不要跳。任何一处主按钮不可达、正文不可读、出现整页横向滚动,记下那个像素。那个像素就是无人区。修到拖过全程不中断,而不是只修两个设计稿。