谷歌浏览器忽略谷歌字体子集。

4
我正在使用一种常见的字体家族——Open Sans,尝试加载多个字重和拉丁字符作为唯一的子集(这是可选的,因为默认情况下支持它),在每个浏览器中都很棒,除了谷歌Chrome。
在Firefox / IE中看起来很好,但在Chrome中,子集被忽略,浏览器获取所有子集及其Unicode范围,并根据页面中发现的字符类型下载它们。我知道这种行为是有意的。
例如,font-weight: 600(semibold)和800(extrabold)看起来与700完全相同。如果我从源中删除所有子集,并仅加载每个字重的拉丁子集,则在Chrome中也可以正常工作。
有没有简单的方法,可以强制Google只提供特定的子集,无论如何?我知道还有几种其他加载字体的方法。
2个回答

3
正如您在问题中提到的,在支持unicode-range的浏览器中,子集是动态提供的,没有必要(也没有方法)强制执行。
只需不在DOM中包含任何来自不需要的子集的Unicode字符。这将防止任何知情的浏览器下载不必要的字体文件。
此外,默认情况下包括latin子集,因此也无需指定它。
只需为不支持unicode-range的浏览器包含其他子集即可。

1
现代浏览器(如Chrome)会下载网页所需并使用的字体范围,因此设置“子集”之类的内容是不必要的。这意味着它们根据DOM中的Unicode字符下载可用的子集。请查看此问题以获取更多信息:子集问题#113

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接