74

网上有很多这样的文章:http?#iefix ://www.fontspring.com/blog/fixing-ie9-font-face-problems 建议在eot url中添加一个。我很想知道将如何解决问题。谢谢。

4

4 回答 4

86

IE8 和更早版本的 src 属性的解析器中有一个错误。因此,如果您在 SRC 中包含超过 1 种字体格式,IE 将无法加载它并报告 404 错误。
问号解决了这个问题,因为它使 IE 认为字符串的其余部分(其他 src)是查询字符串,因此只加载 EOT 文件......
其他浏览器将遵循规范并仅加载所需的字体类型。 ..
您可能想阅读 Paul Irish 的Bulletproof @font-face 语法以了解更多关于其他原因的信息...

于 2011-12-26T14:35:50.633 回答
22

您可以做任何事情而不是?#iefix:基本目标是?#something在 URL 中的第一个字体文件之后放置一个 @Rexyz 已经回答的问题。

@font-face {
font-family: 'MyWebFont';
src: url('webfont.eot'); /* IE9 Compat Modes */
src: url('webfont.eot?#FooAnything') format('embedded-opentype'), /* IE6-IE8 */
     url('webfont.woff') format('woff'), /* Modern Browsers */
     url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
     url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
于 2013-06-07T07:07:18.643 回答
4

完全意识到这是一个老问题。

但是对于那些来这里寻找什么版本的“那个”浏览器需要这个 hack 的人来说,如果你不支持 IE<10,现在可以安全地删除它。

因此,只需摆脱它,只需一行即可枚举您提供的所有格式的所有字体。

于 2018-06-27T00:26:42.687 回答
3

?#iefix可以阻止浏览器将 之后的任何字符解释为?查询字符串,从而防止另一个可能的服务器错误。

于 2013-06-05T09:52:11.623 回答