如何解决? # iefix 解决网页字体加载在 IE6-IE8?

网上有很多这样的文章: http://www.fontspring.com/blog/fixing-ie9-font-face-problems建议在 eoturl 中添加一个 ?#iefix。我很好奇 怎么做能否解决这个问题。谢谢。

51221 次浏览

IE8和旧版本的解析器中 src 属性有一个 bug。所以如果你在 SRC 中包含超过1种字体格式,IE 无法加载它并报告一个404错误。
问号解决了这个问题,因为它欺骗 IE,让 IE 认为字符串的其余部分(其他 src)是一个查询字符串,因此只加载 EOT 文件..。
其他浏览器将遵循规范,只加载所需的字体类型..。
你也许想读读保罗 · 爱尔兰的 Bulletproof@font-face 语法了解更多其他的原因。

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

您可以做任何事情而不是 ?#iefix: 基本目标是在 URL 中的第一个字体文件之后放置一个 ?#something,因为@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 */
}

充分认识到这是一个古老的问题。

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

因此,只要去掉它,只有一行枚举所有字体的所有格式,你提供。