IE9也需要HTML5 shiv以支持HTML5元素

时间:2013-02-15 11:48:18

标签: html5 internet-explorer-9 html5shiv

我在页面中使用以下HTML5元素:header,article,section和nav。 现在我将所有上面的HTML5元素设置为display:block,并在标题中包含带有条件语句的HTML5 shiv:

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

该网站在IE7和IE中运行良好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页面上完成的测试为我提供了相同的结果。

任何想法??

2 个答案:

答案 0 :(得分:30)

我终于弄明白了问题是什么。 在doctype html标记之前,我在我的网站顶部发表了评论。这似乎打破了IE9识别HTML5元素的能力。

这就是我所拥有的:

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

因此我可以通过在doctype下面移动注释来解决这个问题。

答案 1 :(得分:0)

试试此代码

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