在 OSX 上的 Chrome 中用中文指定“等宽”时,它会正确渲染 PingFang SC,但是渲染的字体会比直接使用“PingFang SC”渲染完全相同的字体高 2 个像素。演示:
https://jsbin.com/mahuqub/edit?html,输出
1) font-family: monospace;
2) font-family: PingFang SC;
这不是行高问题,因为我可以看到将行高设置为完全相同的结果。我还注意到某些问题,例如特殊字符/空格在未正确设置“lang”属性时占用不同的空间,但是通过设置“lang”而不使用特殊字符来控制此处。另请注意,Chrome 声称正在渲染 PingFang SC。我还确保我的系统上只有默认的“PingFang SC”字体,不存在其他用户安装的字体。我也没有注意到其他脚本中等宽泛型的这种行为(hrkt/hang,当然还有拉丁语等)。
我的问题是:
1)为什么“等宽”会以不同的方式呈现完全相同的字体?
2)有没有办法检测到这个?