相邻档位差异需可辨
别名: 字号级差 · 档位可辨 · just noticeable size
概念解释
阶梯上如果相邻两档只差一个像素,它们在页面上并排放到一起时,人分不出谁大谁小。层级要靠尺寸说话,差异就必须跨过可辨阈,而不是停在表格里「数字不同」。这一档谈的不是阶梯该有几级,而是两级之间必须拉开到被当成两种东西。
CSS 里的像素差和眼睛里的大小差不是一回事。同样 +2px,用在 x-height 很小的西文面上几乎看不见,用在字面接近满身的中文面上却可能刚好够。可辨是对所用字体、字重和观看条件而言的,不是对数字表而言的。
机制
尺寸对比要先超过刚可分辨的差别,才会被读成「更重要」,而不是「排版不齐」。视觉系统对字号的编码很大一块走的是字面高度——西文是 x-height,中文是字面——而不是字身框的名义尺寸。两档名义上差 1px、x-height 几乎重叠时,它们会塌成同一号,标题语义只剩字重或颜色在硬撑。
比例过小还有第二种失败:中间插入一档「介于标题与正文之间」的妥协尺寸。三级变成四级,每级的相对差被挤窄,原先还能分开的两档重新黏上。层级数量往上加,不是把对比做强,而是把每级分到的差异做薄。
小字号区段尤其脆。14 和 16 的相对差大于 28 和 30:同一绝对增量,在正文附近更显眼,在展示级大数字上几乎没人在意。所以「全阶梯统一 +2px」看起来整齐,实际是正文区可能勉强可辨、大标题区浪费档位。
怎么研究
排印实验里把字号当自变量时,比较的从来不是「有没有差 1px」,而是观察者能否按大小排序、阅读速度是否随尺寸变化。Tinker 一类印刷易读性工作用的是整页阅读和主观清晰度评分,不是成对像素判别;但变量是清楚的:字号、x-height、字距、观看距离。
更贴阶梯的做法是成对比较:同一词、同一字重,只改尺寸,问哪一个更大,或两者是否相同。自变量:两档的比率或像素差、字体的 x-height、是否加粗。因变量:正确排序率、判断用时、「看起来一样」的比例。
界面研究里把产品实际阶梯做成试样行,打乱顺序让人按「哪级更像标题」排列。排不出稳定顺序,说明档位差异没有在承担层级。
边界
展示级数字、英雄标题那种已经大到占满视线的字,再加大一档的可辨需求下降——对比已经饱和,多出来的像素不再增加「更重要」的感觉。相反,辅助说明和角标处在下限附近,差 1px 可能刚好是可读与不可读的分界,那是下限问题,不是级差问题。
深色底、细字重、低对比会吃掉一部分尺寸线索,同样的级差会显得更弱。用户把系统字号放大之后,相邻档位的绝对差会变大,原先刚可辨的阶梯可能变得过分跳;原先挤在一起的阶梯也可能刚好分开。可辨必须在默认档和放大档都看一遍。
怎么落地
- 不要用 1px 去分标题层级。先把相邻两档写成同一个词、去掉颜色和字重,看还能不能分出大小。
- 按所用字体的 x-height 或中文字面来验收,不要只看 CSS 像素表。换字体等于重新验收级差。
- 正文附近的级差优先保证可辨;大标题可以用更大的比率,不必全阶梯等步长。
- 验证:打印或截出相邻档位的同一单词,遮住角色名,找没参与设计的人排序。排错或说「差不多」的每一对,都是没拉开的档。