Montserrat字体在IE 10和11上无法显示。

10
在这个网站http://themescreators.com/ela/中,我使用了一些Google字体。它们在Chrome、FF上都能正常显示,但在Windows 7的IE 10和11中,“Montserrat”字体无法显示。我真的不知道什么原因,是IE与某些Google字体不兼容吗?
如果您在Windows 7上访问该网站,您将清楚地看到此问题,所有“Montserrat”的h1、h2等标题都不可见。
提前致谢!

在我的Win8.0企业版x64上,使用IE 10.0.9200.17028可以正常显示标题,所以这可能不是一般性的IE10/11问题。 - CBHacking
就像我所说的,问题只出现在Windows 7上,而不是Windows 8上。 - ThemesCreator
你是对的,IE11/Windows 7 不起作用。 - Knut Holm
我刚遇到了完全相同的问题。@leepowers的答案解决了它。 - izak
2个回答

6

我遇到了类似的bug,即使使用备用字体也没有解决问题。Montserrat字体正常加载,因此备用字体从未被加载。

事实证明,在Windows 7上的IE10和IE11中使用CSS规则font-feature-settings导致这种特定字体完全无法显示。(虽然它可能会对其他字体造成类似的问题)。

解决方法是禁用font-feature-settings的低级字体调整,使用IE供应商特定的前缀:

/* Fix for IE10 and IE11 Montserrat font display issues. */
p {
    -ms-font-feature-settings: normal;
}

如果可能的话,最好完全避免使用font-feature-settings。或者确保您有测试方案来测试每个Windows操作系统上各种IE浏览器版本。特别是因为字体渲染不仅是浏览器功能,还是底层操作系统的一个功能。

1
这是对我有效的解决方法;我打开了字体字距调整。在IE中,这将重置回正常状态。 - izak
仅仅是为了阐述,放置这个代码的位置不一定是在p元素(或者其他有问题的元素)上,而是在你的样式表中使用了font-feature-settings的任何地方(例如,如果你在标题中使用了有问题的字体并且在父元素上指定了font-feature-settings,那么覆盖它可能无法解决问题。你需要在那里应用这个解决方案)。 - Nick F

5
首先,您没有定义任何备用字体,如果Montserrat无法正常加载,则可以显示备用字体。这就是为什么没有字体显示的原因。
h1, h2, h3, h4, h5, h6 {
   font-family: Montserrat;
   font-weight: 400;
   font-style: normal;
   color: #1C2334;
}

我建议您正确设置字体族,并为此情况添加更多字体。

其次,Montserrat无法正常加载,因为这是IE11的错误,已在Google Font Directory以及MSDN论坛上报告。不幸的是,它还没有被修复。

一种解决方案是下载Google Web Fonts,将它们上传到您的网站并在css文件中手动定义它们。另一种方法可能是使用JavaScript Web Font Loader而不是默认的方法。


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