我正在使用Google Fonts中的Raleway作为项目的主要字体。
一切都很好,直到我注意到数字以“旧式”模式显示,这意味着某些数字从字体的基线开始是上升还是下降。这会损害呈现大量数字的UI部分的可读性。
为了解决这个问题,我可以使用CSS来调整一些OpenType设置,如下所述:https://www.codesmite.com/article/fixing-raleway-and-similar-fonts-numerals
设置font-feature-settings
和/或font-variant-numric
可以在Firefox和Edge上正常使用,但是Chrome似乎忽略了对其应用了粗细或样式规则的元素。
基本上,对于font-weight
(例如bold
)或font-style
(例如italic
)具有非常规CSS值的任何元素都将使数字衬里恢复为旧样式。同样,该特定元素上的显式衬里规则(font-feature-settings: "lnum"
)也无效。
Chrome有什么解决方法吗?还是有一种适当的方法来全局定义数字衬里?
我已经在CodePen中说明了此问题。如果您在不同的浏览器中打开它,您会注意到IE和Firefox可以按预期工作,但是Chrome和其他基于Webkit的浏览器如上所述进行渲染:https://codepen.io/anon/pen/LdVoJG
最佳答案
原因是同时使用了两个不同版本的Raleway。
Google提供的版本只有那些旧样式的数字-它们没有衬砌数字(lnum
)。因此,对于从Google服务器加载的所有字体,您会看到这些看起来不规则的数字。
但是您看不到它们的正常重量,因为它正在加载Raleway的本地版本。可安装的版本(也称为“桌面版本”)包含Raleway随附的所有OpenType布局功能-包括行号。因此,对于所有以常规粗细设置的文本,数字将更改为衬里数字。对于您尚未安装且将从Google获取的所有Raleway口味,都不会包含这些口味,因此您会看到不规则的口味。
尝试卸载所有本地版本的Raleway,然后重试CodePen。 (请注意:必须通过Creative Cloud应用程序删除通过Typekit安装的字体。)
为什么您看不到Chrome和Firefox之间的区别,我不知道-我确实遇到了您提到的问题,但是在卸载了本地版本的Raleway之前,我都在两种浏览器中都遇到过。