本页面借助 AI 辅助翻译。英文原文为权威版本。
行长——传统术语中的 measure——是以字符数计的文本栏宽度。2005 年版推荐每行 55–65 个字符,约合十到十二个英文单词,并警告屏幕阅读比印刷更易疲劳,因此更短的行与更小的段落更为稳妥。在原研究的全部内容中,这条建议经受的考验最好。关于舒适行长的排版共识在一个多世纪的印刷实践中始终稳定,并在屏幕上被反复重申。改变的不是数字,而是围绕它的机制:网页如今拥有直接表达行长的单位、约束行长的标准,以及原版无法想象的视口。
2005 年以来的变化
2005 年,约束行长意味着按平均字符猜出来的固定像素宽度。现代 CSS 以文字自身的尺度表达行长:ch 单位等于当前字体中数字零字形的步进宽度,是平均字符宽度的一个可用近似。一条声明——max-width: 65ch——就编码了本章的核心建议,并在字体、字号或用户偏好变化时自动适应。这是设计师能写下的、与无障碍关系最密切的最有用的一行 CSS。注意 ch 是近似值:在比例字体中,65ch 的栏通常能容纳略多于 65 个实际字符,因为零比平均字符更宽。把它当作目标而非保证,并检查真实的段落。
标准如今为这一范围划定了边界。WCAG 成功准则 1.4.8"视觉呈现"(AAA 级)规定必须提供一种机制,使文本块的宽度不超过 80 个字符(中日韩文字为 40 个)。80 是上限而非目标——该准则界定的是可读性损害在何处成为无障碍问题,而 55–65 区间依然是舒适度的峰值所在。一个最大约 65–70ch 的栏同时满足该指南与更古老的工艺共识。
另一条新约束朝相反方向作用。成功准则 1.4.10"回流"(AA 级,WCAG 2.1 与 2.2)要求内容能在 320 CSS 像素宽的视口中回流——相当于桌面页面放大到 400%——且无需二维滚动。2005 年的风险是行太长;2026 年同等的风险是布局拒绝变短。固定宽度的栏、永不堆叠的并排布局、带有僵硬最小宽度的元素,都会在 320px 下强制水平滚动——这既是合规失败,也是切实的障碍:每读一行都要横向滚动,是低视力用户报告的最折磨人的体验之一。在 320px、16px 正文字号下,每行约 30–40 个字符。这低于舒适区间,但没有关系——短行只是略微放慢阅读,不会摧毁阅读,而水平滚动会彻底摧毁它。把行长设计为上限,绝不要设为下限。
这一区间为何有效
55–65 建议的稳定性反映了阅读的机制。长行拉长回扫——眼睛跃回下一行行首的动作——并增加"重行"错误,即读者落在错误的行上;它们还需要额外的行距来补偿。过短的行则让每次注视的预览中包含的词太少,迫使目光不停换行,并把短语从其语法结构上生生剁开。易读性研究以一种有趣的方式让图景更复杂:一些屏幕研究发现更长的行可以带来更快的阅读速度,推测是因为减少了代价高昂的回扫次数——然而读者始终偏好中等长度的行,并评价其更舒适,而舒适度决定了人们是否会继续读下去。对于持续阅读,偏好与疲劳的减轻都支持中等行长,本章继续如此推荐。
与行距的相互依存(上一章已述)值得再压缩成一条规则:如果行长必须偏长,就加大行高。75 字符的行在 line-height 1.6 下仍可阅读;同样的行在 1.3 下就会招致重行。
响应式行长的实践
现代模式由三种成分组合而成。内容栏设置约 60–70ch 的 max-width,在大屏上确立理想行长。流式的水平内边距让栏在收窄到窄视口的过程中始终有呼吸空间,而绝不引发水平滚动。如果同时使用流式字号——字号通过 clamp() 随视口缩放——请记住行长以字符而非像素计:由于 ch 跟随字号,基于 ch 的 max-width 会随文字一同放大,使字符数大致恒定——这恰恰是你想要的行为。
与原文的一处反转:2005 年版建议正文避免断字。在行长宽裕的齐左排版中,断字确实没有必要。但在回流所要求的窄行长下,不断字的长单词会造成豁口般的参差,或者干脆溢出。启用 hyphens: auto(并正确设置 lang 属性,因为断字由词典驱动)如今是必须在窄栏中存活的正文的良好实践。在支持的环境下配合 text-wrap: pretty 以获得更好的断行决策。
最后,原版关于段落长度的建议依然成立,而且长出了牙齿:更短的段落有助于屏幕阅读器用户、略读者以及有注意力或记忆困难的读者所依赖的定位导航。WCAG 1.4.12 还要求内容容忍用户增大的段落间距,因此要避免假定段落恰好排满某个精确高度的布局。
在 CSS 中
article {
max-width: 65ch; /* 45–75 characters; ~65 is the sweet spot */
margin-inline: auto;
padding-inline: 1rem; /* fluid gutter at every width */
}
/* Test at a 320px viewport: no horizontal scrolling (WCAG 1.4.10) */
建议
- 正文以每行 55–65 个字符为目标;依 WCAG 1.4.8 把 80 视为外部上限。
- 用 ch 单位的 max-width(约 60–70ch)在内容栏上实现行长。
- 确保内容在 320px 视口下回流且无水平滚动(WCAG 1.4.10);绝不设置行长下限。
- 行长偏长时加大行高;这两项设置是同一个决定。
- 启用 hyphens: auto 并正确设置 lang 属性,让窄栏干净断行;在支持的环境下加上 text-wrap: pretty。
- 使用流式字号时,用字符相对单位表达行长,使行长在字号缩放时保持稳定。
- 保持段落简短;验证布局在 WCAG 1.4.12 的段落间距增大时依然完好。