信息可以沿着同一条线排列整齐,读者却仍不知道哪些项目属于一组,或一个开关会影响哪里。构图需要同时回答位置与关系。
我先从共同起点和行高谈起,再通过设置表单与操作面板拆解分组、说明位置和视觉主次,让空间承担一部分解释。
本文由原篇重编并扩充。样例数值代表当时条件,并非所有界面的固定规格;系列背景与工具入口见 总论。
排列与行高
让信息沿着共同起点排列
间距节奏(spacing rhythm)来自重复的关系。图中行高 64 px、图标与文字间距 12 px、面板内边距 24 px;名称、说明与分隔线共用文字起点,图标留在自己的区域。表头则先对齐整组内容的起点,交代列范围。

组内靠近,组间留出停顿
共同起点让内容整齐,接近性(proximity)则让人看出关系。这里两组导航保留相同的文字、行高与组内 8 px 间距,只把组间距离由 8 px 拉到 24 px。Workspace 和 Personal 的分组因此更容易读出来。

24 px 是这组内容的停顿,没有必要套到每一段导航。工作区可以紧密,组别仍要辨认得出;分隔线若需要出现,也应沿着内容起点安排。我会先让间距承担关系,再决定哪里还需要一条线。
同行元素如何维持节奏
一行文字只有 24 px 高,旁边的头像、徽章或控件却可能更高。头像与缩略图有自己的尺寸;按钮、复选框、单选、开关、输入框与选择框还可能带着内边距或最小操作范围。先看哪个元素决定了整行高度,才能知道该调整哪一层。
我会分开衡量布局占用、可见范围和操作范围。细线、阴影或焦点轮廓可以画在外面,不一定撑高行;实体边框、内边距与元素尺寸则参与布局。基线对齐决定文字沿哪条线排列,光学对齐判断可见形状,垂直节奏(vertical rhythm)关心这些行如何连续排列。

这组试样上下各 −6 px margin,让 36 px 控件对 flex 行的占用降为 24 px,控件本身和点击区仍高 36 px。负 margin 补偿描述实现方式,bleed 描述元素有控制地伸入周围留白。Radix 的 ghost button也用类似处理抵消内边距。
取值要跟着元素和周围空间走。我会先确认行的用途与密度,选择合适尺寸,处理内边距和对齐,最后判断是否需要补偿。头像过大、文字换成两行,或触控需要更大的目标时,就让行增高或重新排列。单纯平移只改变外观,原本占用的高度仍在;外伸的操作范围也不能盖住相邻行。
表格与句内内容另看行框
表格常有更直接的调整位置:操作单元格的内边距。这组文字行高 24 px,上下各 8 px,合计 40 px。放入 36 px 控件后,同样的内边距会把行撑到 52 px;只将操作格上下内边距改成 2 px,就能容纳原尺寸控件,回到 40 px。

原生表格会让单元格的内容和对齐参与行高计算,指定 tr 高度也不会把更高的内容缩小。只扣掉控件的 margin,行框和基线仍可能留下额外空间,不能直接套用前面的 flex 算式。

句内图片和图标可能在基线下方留下字母下伸部的空间;不属于句子的图片,可以在独立区域改用 block。行内 code、上标和原生控件也有各自的字体、行高默认值。vertical-align: middle 依据周围字体的基线与 x-height 对齐,并不代表整行的几何中心。最后仍要检查实际字符串、相邻行距与键盘焦点。
可在文字与行高研究页切换五语样本、深浅主题、行宽和文字大小,并操作不同元素。研究页区分语法支持、实际测量与光学判断;文字放大或操作范围需要更多空间时,行会跟着生长。
让关系可见
框线包住的,应该是同一件事
每个字段都装进独立卡片,画面会很整齐,却未必说清关系。这组表单保留相同字段和顺序,右侧让通知偏好共用一个区域,账号资料则单独成组。边界因此承担了分组的工作。
我会先用标题和间距组织内容,再决定是否需要底色或外框。同一个面板不代表设置一定一起保存;提交范围不同时,按钮和说明仍要交代清楚。实际行为不能悄悄违背框线暗示的关系。

说明留在需要它的地方
错误只显示在表单顶部时,读者需要带着消息回到字段,逐一寻找对象。图中只改说明的位置:相同的 Email 格式错误,分别放在所有字段上方和 Email 后面。
就近说明适合解释局部问题;长表单仍可在顶部提供错误摘要与跳转入口。实现时,错误消息还需与字段建立程序上的关联,不能只有视觉靠近。W3C 表单通知指南同时讨论整体摘要与字段旁的反馈。

让重要的信息先被看见
标题、状态、时间和每个按钮都同样醒目时,读者仍需自行判断先看哪里。这组审核面板保留相同内容与位置,右侧只强调待处理状态和主要操作,时间及次要操作退到下一层。
我按当前任务分配分量,不规定整页永远只有一个重点。弱化次要信息也不意味着降低可读性;错误、费用或不可逆操作的后果,即使不是主标题,也必须清楚呈现。

控件靠近它影响的内容
把开关集中在右上角看起来利落,却可能让用户不清楚每个开关控制哪组通知。图中保留名称与数量,右侧把 Email 和桌面通知开关放回各自的行。
位置帮助建立对应,文字仍需说明作用。影响整个工作区的开关应放在工作区层级并注明范围。手机重排时,控件应随自己的内容移动,不能因为换行而靠近另一项内容。

收起细节,留下当前选择
高级选项不必始终展开,但收起后也不能让人忘记已应用的设置。这组通知设置把频率留在主要画面,展开后可调整免打扰时段,收起后仍显示当前时段。必要条件和错误不会一起消失。
我将低频调整放到次层,并提供清楚的展开名称。如果每次使用都必须展开,通常说明分层有问题。渐进披露是在安排信息出现的时机,不是让画面尽可能短。

我希望读者从排列就能看懂关系:哪些内容一起读、哪个控件影响哪里,以及现在需要处理什么。间距、区域与主次先把这些事交代清楚,折叠才有助于阅读,而不只是缩短页面。
