我在网页中使用以下HTML5元素:header、article、section和nav。 现在,我已将所有上述的HTML5元素设置为display: block,并在头部包含了一个带有条件语句的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页面上进行的测试对我来说给出了相同的结果。
有什么想法吗?
doctype
是什么? 你使用X-UA-COMPATIBLE
吗? 顺便说一下,我认为在第二个例子中你的意思是<!--[if lte IE 9]>
。 - t.niese<meta http-equiv="X-UA-Compatible"
或发送X-UA-Compatible:
标头吗?(http://www.sitepoint.com/html5-shim-ie-emulation-mode/) - t.niese