中文网页排版的几个细节 v2

中文和英文混排时,有几个细节值得单独处理。
行高
拉丁字母有升部和降部,视觉上自带留白;汉字是方块字,每个字都把格子填满。所以中文正文需要更大的行高,1.7 左右读起来比较舒服,而英文网页常见的 1.4–1.5 对中文来说太挤了。
行宽
一行太长,眼睛换行时容易找错位置;太短又会频繁换行。17px 的正文配 680px 左右的内容宽度,大约是每行 40 个汉字。
字体
不嵌入网络字体,直接用系统字体栈:苹方、Hiragino、Noto Sans CJK。中文字体文件动辄几 MB,嵌入的代价远大于收益1。
其他
- 正文不用
text-wrap: pretty:它在英文里能避免末行孤字,在中文段落里却会让行尾参差不齐 - 标题用
text-wrap: balance,让多行标题长度更均匀 - 中英文之间的间距(还在考虑要不要用
text-autospace)
脚注
-
子集化可以缓解,但对一个文章内容不断变化的博客来说,维护成本不低。 ↩
评论