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