我正在开发一个使用Google字体的网站,Open Sans如下所示:
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700italic,800italic,800,700' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)
通常情况下,我在使用我的网站时使用Chrome,但今天我决定在Windows 10上看到它在IE 11(11.0.10240.16431)中的外观.不幸的是,Open Sans没有正确加载和渲染.我在Developer Tools控制台中看到了很多这些错误:
CSS3111: @font-face encountered unknown error.
PRmiXeptR36kaC0GEAetxjqR_3kx9_hJXbbyU8S6IN0.woff
Run Code Online (Sandbox Code Playgroud)
认为这很奇怪 - 我以前开发过一个网站,可以在IE 10中轻松加载Google字体 - 我转向https://www.google.com/fonts.更多CSS3111错误,serif而是显示每个自定义字体:
对于IE 11,谷歌字体是否已被破坏?字体在Edge,Chrome,Firefox等中正确加载.我对如何使这些字体在IE中工作感到茫然.
更新1
在IE 11中将模拟文档模式设置为8会导致字体正确呈现.然而,IE 9+仍然表现出同样的问题.这可能是谷歌某种不正确的用户代理字符串处理吗?
更新2
我去了FontSquirrel并下载了所有格式的Open Sans.我还导入了ZIP中提供的CSS.不幸的是,IE和现在的Firefox继续报告该字体无法使用.Firefox说downloadable font: not usable by platform.
更新3
我已经确认所有安全区域的IE的字体下载设置都设置为Enabled.
在我们最近添加并替换了几个图标之后,我们开始在Windows XP上的IE8中看到一个看起来很讨厌的对话框:
此页面使用需要临时安装的字体.这通常是安全的.您想要下载这些字体吗?
[是] [否]
可以通过更改IE8中的某些设置来避免这种情况,但这是一种糟糕的用户体验,并且似乎不会出现在其他具有Web字体的网站中.
有问题的字体是免费的网页图标,收集和使用配置的自定义集合fontastic.me Web应用程序,并利用自己的@字体面的声明,字符编码和CSS类名的输出.
该字体已经生产了4个月左右,并且在没有任何对话框的情况下在IE8/XP上正常加载.在最新更新字体(添加/替换几个图标)后,此对话框开始弹出.它仅在IE8中,仅在XP上(Windows 7很好).
另一个有趣的数据点是在IE9(不是IE8!)上,在字体文件更改之前和之后,控制台都出现错误:
CSS3111:@ font-face遇到未知错误.zLhfkPOm_5ykmdm-wXaiuw.eot
这看起来像这个问题,但在我们的例子中,字体加载很好.
此外,以前,我们遇到了麻烦,安装在本地操作系统上的字体文件(允许的Photoshop comp'ing),并必须通过字体松鼠的处理器来运行它得到它的工作.现在,它安装在操作系统中.
所以我的理论是,或许前,.EOT文件IE8使用了一些问题,这是防止IE从尝试下载它,并在最近fontastic修正这些问题,从而为IE8尝试下载的方式.公共.EOT文件生成器存在已知问题的事实可能是相关的,尽管我不知道fontastic使用什么工具.
什么可能导致对话突然出现?