由于系统的差异,不同的电脑上存在的字体是不一样的。为了网站的效果可以兼顾各个设备,一般在写 CSS 的时候,font-family
总是很长的一串。通过字体 fallback 的功能,让浏览器自行选择最先能匹配到的字体文件,从而保证显示的效果大体上接近于视觉效果图。在实际书写中,有一个值得注意的细节:英文字体应该在中文字体的前面。
中文字体文件往往包含英文字符,但是这些英文字符的样式很可能并不是设计师希望看到的。如果中文字体展示在英文字体的前面,英文字体就没法被使用到,导致最终的效果略有偏差。下面展示了中文字体 PingFang SC 和苹果默认英文系统字体(SF NS Display)针对英文字母的渲染效果(需要在 MacOS 下查看):
ffi
ffi
所以,应该写:
.example {
font-family:
-apple-system, BlinkMacSystemFont,
'Segoe UI', 'Helvetica Neue', Helvetica, Arial,
'PingFang SC', 'Microsoft YaHei',
sans-serif;
}
而不是:
.example {
font-family:
'PingFang SC', 'Microsoft YaHei',
-apple-system, BlinkMacSystemFont,
'Segoe UI', 'Helvetica Neue', Helvetica, Arial,
sans-serif;
}
这里,-apple-system, BlinkMacSystemFont
针对苹果下的 Safari 和 Chrome 内核调用系统自带字体,对应到的英文字体是 SF (SF NS Display),中文字体是 PingFang (PingFang SC)。