同样的 HTML 标记,在不同语言的文本下,显示出来的字体和粗细确实可能会不一样,原因如下:
浏览器字体回退机制
CSS 里写的字体如果当前系统不支持,就会回退到下一个,比如:
font-family: "Arial", "Helvetica", sans-serif;
SimSun
, Microsoft YaHei
, Noto Sans SC
等。Arial
, Times New Roman
, Roboto
, Helvetica
等。字体对语言的支持不一致
某些西文字体(如 Arial
)对中文的支持很差,显示中文时会被系统自动替换成其他字体。
中文字体和西文字体的字重定义不一样。比如:
font-weight: 400
看起来很细;400
,在视觉上也比英文粗很多(尤其像“微软雅黑”)。bold
效果也会因语言不同表现出强弱不一的加粗。<p style="font-family: Arial; font-weight: 400;">
This is English text.
p>
<p style="font-family: Arial; font-weight: 400;">
这是中文文本。
p>
同样的 Arial
和 font-weight: 400
,你会发现英文是细的,而中文可能是另一种字体、而且看起来更粗。
如果你希望中文和英文看起来尽量一致,可以使用专门设计为多语言统一风格的字体,比如:
Noto Sans
/ Noto Sans SC
Microsoft YaHei UI
PingFang SC
(macOS 中文)Roboto
+ Noto Sans CJK
并通过 CSS 指定更细致的字体设置,例如:
body {
font-family: 'Noto Sans', 'Noto Sans SC', sans-serif;
font-weight: 400;
}