10

我在我的页面中使用以下 HTML5 元素:标题、文章、部分和导航。现在我已将上述所有 HTML5 元素设置为 display: 块,并在标题中包含带有条件语句的 HTML5 shiv:

<!--[if lt IE 9]>
<script src="dist/html5shiv.js"></script>
<![endif]-->

该网站在 IE7 和 IE8 中运行良好 - 表明 html5shiv 确实在发挥它的魔力。但是,当我在 IE9 中测试该站点时,它缺少 HTML5 元素内所有内容的样式。

一旦我将条件语句更改为:

<!--[if IE]>
<script src="dist/html5shiv.js"></script>
<![endif]-->

html5 元素及其子元素现在应用了正确的样式。我仔细检查了我的 IE 版本,它说我的 IE 版本是 9.0.8112.16421。

我还应该提到,这些站点是用 PHP 构建的,并通过使用 PEAR 的 Cache_Lite 进行缓存。然而,在一个简单的静态 html 页面上进行的测试对我来说给出了相同的结果。

有任何想法吗??

4

2 回答 2

29

我终于设法找出问题所在。我在我的网站顶部有一条评论,在 doctype html 标记之前。这似乎破坏了 IE9 识别 HTML5 元素的能力。

这就是我所拥有的:

<!-- Served From Cache: Wednesday 13th of February 2013 03:02:22 PM -->
<!DOCTYPE html>
<html>
    <head>

因此,我可以通过将注释向下移动到文档类型下方来解决此问题。

于 2013-02-15T13:49:58.683 回答
0

试试这个代码

<!--[if lt IE 9]>  
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>  
<![endif]--> 
于 2013-02-15T12:07:18.217 回答