在IE8中嵌入FontAwesome字体时出现CSS3111错误

我在我的页面上使用FontAwesome(http://fortawesome.github.com/Font-Awesome/)作为网页字体:

http://www.jungledragon.org/apps/jd3/

我的问题是,字体无法加载IE8(标准模式),而是显示方块。 由于这些图标对设计至关重要,因此我很想解决这个问题。

我已经研究了很多问题和答案,所以让我告诉你我做了什么来解决这个问题。 首先,我使用推荐的格式来嵌入此字体:

@font-face {
  font-family: 'FontAwesome';
  src: url('../type/fontawesome-webfont.eot');
  src: url('../type/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
  url('../type/fontawesome-webfont.woff') format('woff'),
  url('../type/fontawesome-webfont.ttf') format('truetype'),
  url('../type/fontawesome-webfont.svg#FontAwesome') format('svg');
  font-weight: normal;
  font-style: normal;
}

这是加载字体x浏览器的事实上的标准,以及与FontSquirrel等工具生成的输出相同的输出。 类型目录与我的CSS目录相关,并且此字体将在除IE8之外的所有浏览器中加载。

其次,我已经跨域启用(CORS),所以这绝对不是问题。

有些人建议加载html5 shiv可能会干扰IE8加载字体,但是一起删除shiv加载仍然没有什么区别。

该网站在Apache2上运行,添加MIME类型似乎对结果没有任何影响。 另外,我可以确认我可以使用直接路径从IE8下载eot文件,因此该文件是绝对可访问的。

我不知道我做错了什么,但它肯定是我的最终目标。 原因很简单:从IE8打开官方的FontAwesome网站将会加载字体。 另外,我使用的辅助字体(在网站徽标中使用的字体)也呈现得很好。 第二种字体来自Google webfonts,而fontawesome字体与网站位于同一个域中。

我正在想出如何解决这个问题的任何线索?

更新:我应该添加在IE开发工具栏中,这是我得到的错误:

CSS3111:@ font-face遇到未知错误。 fontawesome-webfont.eot

我发现这篇文章讨论了这个错误:

http://www.marinbezhanov.com/web-development/16/how-to-embed-webfonts-properly-and-how-to-solve-the-ambiguous-css3111-font-face-encountered-unknown-error/

...但我没有看到里面的解决方案,帮助我。


最终,这个答案解决了我的问题:

https://stackoverflow.com/a/12459447/80969

我不得不使用一个不起眼的字体编辑程序编辑fontawesome下载包附带的ttf文件。 在那里,我将“人类字体名称”重命名为与所有其他“名称”字段相同。 接下来,我使用http://www.font2web.com/生成一个新的.eot文件并将其集成到项目中,保持其他所有内容一致。 和presto,它的作品!

它看起来像我的版本的字体真棒有问题内置到下载。


可能值得检查http://fontface.codeandmore.com/blog/ie-7-8-error-with-eot-css3111/也。

链接地址: http://www.djcxy.com/p/93471.html

上一篇: CSS3111 error when embedding FontAwesome font in IE8

下一篇: Font Awesome fonts show up as boxes on IE8