我使用Google字体中的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
答案 0 :(得分:1)
原因是两个不同版本的Raleway一起使用。
Google提供的版本只有旧式数字 - 它们不带有衬里数字(lnum
)。因此,对于从Google服务器加载的所有字体,您将看到这些不规则的数字。
但是你没有看到正常体重,因为它正在加载Raleway的本地版本。可安装版本(也称为"桌面版本")包含Raleway随附的所有OpenType布局功能 - 包括衬里数字。因此,对于以正常重量设置的所有文本,数字将变为衬里数字。对于你没有安装的所有Raleway口味,并且将从谷歌获取,不会有这些,所以你会看到不规则的。
尝试卸载所有本地版本的Raleway并再次尝试CodePen。 (请注意:必须通过Creative Cloud应用程序删除通过Typekit安装的字体。)
为什么你看到Chrome和Firefox之间存在差异,我不知道 - 我确实遇到了你提到的问题,但我在两种浏览器中都做过,直到我卸载了我的本地版本的Raleway。