在Chrome

时间:2018-03-12 12:39:17

标签: css google-chrome fonts webkit opentype

我使用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

1 个答案:

答案 0 :(得分:1)

原因是两个不同版本的Raleway一起使用。

Google提供的版本只有旧式数字 - 它们不带有衬里数字(lnum)。因此,对于从Google服务器加载的所有字体,您将看到这些不规则的数字。

但是你没有看到正常体重,因为它正在加载Raleway的本地版本。可安装版本(也称为"桌面版本")包含Raleway随附的所有OpenType布局功能 - 包括衬里数字。因此,对于以正常重量设置的所有文本,数字将变为衬里数字。对于你没有安装的所有Raleway口味,并且将从谷歌获取,不会有这些,所以你会看到不规则的。

尝试卸载所有本地版本的Raleway并再次尝试CodePen。 (请注意:必须通过Creative Cloud应用程序删除通过Typekit安装的字体。)

为什么你看到Chrome和Firefox之间存在差异,我不知道 - 我确实遇到了你提到的问题,但我在两种浏览器中都做过,直到我卸载了我的本地版本的Raleway。