一般来说,文字的视觉高度=字号。例如 14 像素的文字,不论中文还是英文,视觉高度也是 14 像素。

每行文字必须要有间距,阅读起来才舒服。所以通常会给文字赋予一个超出视觉高度的行高。例如这篇文章的行高就是用的公众号默认的 1.6 倍字号。
1.6 倍的行高,用到正文上是合适的,用到标题上就有点太多了:

行高这个东西,究竟要怎么定才合理呢?
接下来我将从 3 个方面来分析一下:📝 用研实验、📚 行业建议、📐 大厂规范。
行高只是设计规范中,一个小细节。除此之外,还有字号、颜色、尺寸、间距和适配……这些很难靠零散的文章承载,所以我都整理到组件设计课程里了。这个课程不只是讲组件化设计和组件库整理,还会讲到组件本身的设计规范(以各大厂规范为依据和案例):
1. 百度用研建议:1.7 倍行高
我之前转发过一篇文章,百度有驾的用研调研了一些竞品后,发现内容型产品中 1.7 倍行距是最常见的。后续用研也验证,行距在 1.7 倍时,完读率最高,用户反馈浏览更舒适。


但是这个数字,并不具备普遍性。因为竞调和用研都只看了内容型产品的正文部分,而且评判标准是完读率和舒适度。
一个产品的文字,不只包含内容阅读和正文部分,还有标题、描述等文字。而且从业务考虑,有时也需要为了塞入更多信息而缩小行高。
2. WCAG 标准建议≥1.5 倍行高
Web Content Accessibility Guidelines(WCAG,网页内容无障碍指南)是一套国际标准,旨在让网站和数字内容对所有人(包括残障人士)更友好。前端和自己建站的人对这个可能比较熟悉,可以帮助没有设计基础的开网站开发者规避很多基础用户体验问题。
下图可以看到,WCAG 建议行高至少是字号的 1.5 倍:

这个数字也多半是针对正文来讲的。因为前面已经分析过,1.5 倍行高对标题来说太高了,不论中文还是英文都不合适。
到现在为止,这些零散的研究和建议都是针对正文的,而且主要考虑阅读是舒适度。
看来只有大厂设计系统,才能给出完整的建议了。
3. 大厂设计系统
我近期收集了移动端、网页端和桌面端,共计 10 个海内外大厂设计系统的字号和行高的数据,这数据是不是足够了?

分析发现,各大厂设计系统的行高规范分成 3 大流派。
- 固定比例(4 家):行高=字号 ×N
- 固定差值(2 家):行高=字号+N
- 都不固定(3 家):行高与字号之间没有明确比例或差值上的关系。可能有其它数学关系,但是暂时没有看到明确介绍。
3.1 流派 1:固定比例
苹果、微软和字节都是用的固定比例,但是这三家的处理有点不同。
字节是用精准的 1.4 倍行高,因为官网就是这么规定的:

微软提供了字号和行高的表格,算下比例在 1.3 至 1.4 之间。之所以不那么精准,可能是确保行高的数值可以被 4 整除吧。


苹果也提供了参照表。
- 桌面端(macOS)的行高在字号的 1.2 至 1.3 倍之间。
- 移动端(iOS/iPadOS)的行高在字号的 1.3 倍至 1.4 倍之间,唯一的例外是最小字号的行高是只有 1.2 倍。
看那么多单数和质数,我也没想通苹果这么处理的含义。有没有懂的小伙伴能留言解释一下?


3.2 流派 2:固定差值
只有两家是这么干的,而且都是国产设计系统,差值还都是 8。
AntDesign 只给了一张对照表,没有解释这些行高是怎么算出来的。但是我结算出的结果就是,行高与字号的差值是 8。

TDesign 倒是给出了行高的计算方式和原因分析,只不过这个原因说得比较简单:


而且这两个设计系统,也是我记录的所有 10 个设计系统中,唯二不指定各字号用途的(除了规定了正文 14)。也不知道他俩是谁参考了谁?
3.3 流派 3:都不固定
谷歌的 Material 3、亚马逊的 Cloudscape 和 Atlassian 的字号行高表,我都找不出明显的比例或差值上的关联。
这里面最有意思的是 Material 3。
有趣的是,他们官网明明写了,建议标题行高为 1.2 倍,正文和说明的行高为 1.5 倍。


而他们给出的参照表里,行高和字号的比例在 1.1 至 1.5 之间,而差值在 4 至 8 之间——跟前面那两段建议可以说是毫无关联。

Atlassian 也有类似的情况,根据他们的文档,标题的行高 1.2 倍,正文的行高是 1.4 倍。并且要微调行高数值,确保满足 4 的倍数。

上图来源:https://atlassian.design/foundations/typography/product-typefaces-and-scale
但是看看参照表,很多行高根本不符合前面所说的计算规则。

亚马逊的设计系统并没有告知行高的计算规则,比例和差值也没有看出明显的统一标准。

总结一下
除了国内 2 家(AntDesign 和 TDesign)用字号加 8 来计算行高,以及亚马逊(Cloudscape)规则不明之外,绝大多数设计系统都是用字号乘以固定参数来计算行高,这个固定参数在 1.2 至 1.5 之间。
一点意外是,Material 3 和 Atlassian 明确说了要用几倍行高,但实际给出的参照表却没有体现出来。
从主流来看,给非标题用 1.4 ~ 1.5 倍行高,给标题用 1.2 ~ 1.4 倍行高,是合理的。这也是我自己比较习惯的方式——Figma 设置起来省事,可以直接写百分比。
还可能有人认为,中文不能照搬英文的规则。从国内大厂来看,既然蚂蚁和腾讯都用字号加 8,说不定这才是最合适中文界面的。
但是从理论分析来看,腾讯给出的解释,又感觉不是很全面。再说加 8 设置起来,没有百分比省事…… 🆃