Font Awesome在Internet Explorer 8中无法显示

15

我们最近开发了一个网站,其中强烈依赖Font Awesome作为设计的一部分。我们使用了带before:content和他们提供的CSS的标准实现。

由于某种原因,Font Awesome在IE8中无法显示。我花费了相当多的时间进行故障排除和尝试各种修复方法,但都没有成功。

我已经:

  • 将EOT的Mimetype设置为application/vnd.ms-fontobject
  • 将OTF、TTF的Mimetype设置为application/octet-stream
  • 在所有CSS加载完成后执行了HTML5Shiv。
  • 尝试在页面加载时重新加载CSS或DOM。

这是网站链接:http://www.tetakere.org.nz - 热门链接框是Font Awesome的一个很好的例子。

有人有其他想法来解决这个问题并让网站正确显示Font Awesome吗?

6个回答

18

经过一番令人痛苦的故障排除,我终于解决了问题。

解决方案是将加载HTML5Shiv的代码从<head>部分移动到</body>标签之前。

<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</body>

1
这对我在IE7中解决了问题,但在8中没有。 - Synchro
1
可能与字体加载之前的内容呈现有关。我还将html5-shiv放在FontAwesome之后以解决此问题。请参见https://dev59.com/hGkw5IYBdhLWcg3wkLQX。 - leesei

9

我知道这是一个比较老的问题,但是我在解决这个问题上遇到了很多困难,除了最后一个答案以外,其他的都没有帮助到我。

我做的更改是:

对我有用的方法是:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

这也可行(我参考的最后一个答案):
<meta http-equiv="X-UA-Compatible" content="IE=8">

此外,我看到(Force IE compatibility mode off using tags)你应该将这个meta标签放在所有其他meta标签和任何条件IE语句之上;否则,meta标签将无效。

2

我尝试了修改我的apache配置和.htaccess文件,但都没有成功。在IE开发工具中,我偶然发现了“文档模式”,默认为IE7。所以经过一些研究,我找到了这个meta标签:

<meta http-equiv="X-UA-Compatible" content="IE=9">

现在,IE 10和9可以正确地格式化我的网站并正确显示所有Font Awesome图标。

如果您仍然需要IE 8兼容性,可以从以下内容开始:

<meta http-equiv="X-UA-Compatible" content="IE=8">

希望这能帮到您...

2

我在IE8中使用FontAwesome时不需要html5shiv。 这个答案(重新创建.eot文件并替换旧文件)解决了我的问题。


0
  1. 在htaccess文件中添加以下内容。"BrowserMatch MSIE best-standards-support Header set X-UA-Compatible IE=8 env=best-standards-support"
  2. 尝试重新转换eot字体
  3. 更改文档兼容模式
  4. 尝试usleep函数
  5. 使用setInterval js
  6. 添加Google的HTML5脚本
  7. 在body部分调用ie8的CSS
  8. 添加data-icon类
  9. 使用伪元素js
  10. 在CSS中添加png和svg过滤器
  11. 检查服务器上字体类型的权限

但是最终只有在添加了.sass和.less的CSS文件后才生效

祝编码愉快!


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接