CSS字体“?#iefix”[重复]

Posted

技术标签:

【中文标题】CSS字体“?#iefix”[重复]【英文标题】:CSS Font Face "?#iefix" [duplicate] 【发布时间】:2012-12-21 20:37:55 【问题描述】:

我有一个关于 css @font-face 的问题。我正在使用本网站 (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax) 中的以下代码。

@font-face 
font-family: 'MyFontFamily';
src: url('myfont-webfont.eot?#iefix') format('embedded-opentype'), 
     url('myfont-webfont.woff') format('woff'), 
     url('myfont-webfont.ttf')  format('truetype'),
     url('myfont-webfont.svg#svgFontName') format('svg');

为什么“url('myfont-webfont.eot?#iefix')”行末尾有“#iefix”?

【问题讨论】:

【参考方案1】:

这是因为 IE8 及以下版本解释字体声明的方式。正常的url('myfont-webfont.eot')在这些版本的IE中会导致404 Server错误;添加?#iefix 修复了服务器问题。 (出于同样的原因,IE 有条件样式表。)

根据 Fontspring(直接来自源):

Internet Explorer

所以需要的部分是?;我想#iefix 只是程序员的语义线,浏览器不会以任何特定方式解释。

如果您愿意,这里有更多信息:https://github.com/stubbornella/csslint/wiki/Bulletproof-font-face。

【讨论】:

谢谢。这有助于清理一些东西。 如果在? 之后使用#iefix,则结束查询字符串并开始URL fragment。我不知道这是否是有意的,但它可能会避免剩余的urls 命中任何browser/server querystring limitations 的问题。 有趣。上船了! 对于需要缓存破坏策略的开发人员,使用重写规则或文件名更改是唯一的选择,因为file.eot?v1 将不起作用.. 查看 Font Awesome 的 css 行为,似乎较新的 IE 仍然遵循相同的解析规则。使用 Fiddler,我看到 IE 11 进入了 ../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0 规则,而 Chrome 和 Firefox 避免了它。

以上是关于CSS字体“?#iefix”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

网站引入特殊字体

css中src: url('iconfont.eot?#iefix') format('embedded-opentype')啥意思?

CSS不寻常的字体[重复]

使用 CSS 动态调整字体大小 [重复]

无法在 Meteor 中解码下载的字体

加载资源失败:404(未找到)- Rails 自定义字体