Tobi Reif 指出,即使在同一浏览器、不同操作系统上,设置为超大字体的自定义字体的定位也可能存在巨大差异。 解决方法?您知道某些 CSS 属性仅在@font-face
块内起作用吗?它们被称为“描述符”,而font-display
就是一个流行的示例。还有一些支持度较低的,例如ascent-override
、descent-override
和line-gap-override
。Chrome 支持它们,并且可以用来解决此问题。
我真的很喜欢这样的想法:这些描述符可以用来覆盖本地(回退)字体的“度量”,使其与您将加载的自定义字体相匹配,这样,当自定义字体加载时,就会出现几乎没有移动的情况。我讨厌FOUT(我知道从理论上讲它对性能有好处),但如果文本切换不会导致内容移动太多,我也可以接受它。