如何解决IE6-IE8中的Web字体加载问题?
很多networking上的文章是这样的: http : //www.fontspring.com/blog/fixing-ie9-font-face-problemsbuild议添加一个?#iefix
的eoturl。 我很想知道这是如何解决这个问题的。 谢谢。
IE8和更旧的版本在src属性的parsing器中有一个bug。 所以,如果您在SRC中包含超过1种字体格式,则IE无法加载并报告404错误。
问号解决了这个问题,因为它愚弄IE认为其余的string(其他src)是一个查询string,因此加载只是EOT文件…
其他浏览器将遵循规范并加载他们所需的字体types…
你可能想阅读保罗爱尔兰的Bulletproof @ font-face语法来了解更多关于其他一些为什么…
你可以做任何事情而不是?#iefix
:基本的目标是在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 */ }
?#iefix
是在那里停止浏览器解释后的任何字符?
作为查询string,从而防止另一个可能的服务器错误。