我在页面中使用以下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页面上完成的测试为我提供了相同的结果。
任何想法??
答案 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]-->