html5新元素(header,nav,footer,..)在IE中不起作用
您需要包含HTML5 shiv脚本,以便在旧的IE浏览器中设置HTML5元素的样式:http://code.google.com/p/html5shiv/
要使用,请在CSS上方的元素中包含以下脚本:
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
你需要使用HTML5 Shim。这是一个detailed explanation为什么需要它。
要使用HTML5 Shim,您只需要在页面的<head>
中添加以下所有CSS声明:
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
另一种选择是使用Modernizr,其中包括HTML5 Shiv并且还提供HTML5特征检测。
IE Modernizr中的HTML 5元素在JavaScript中运行一个小循环,以启用HTML5(以及abbr)中的各种元素,以便在Internet Explorer中进行样式设置。请注意,这并不意味着它突然使IE支持Audio或Video元素,它只是意味着您可以使用section而不是div并在CSS中设置它们的样式。你也可能想要设置许多这些元素来显示:block;请参阅HTML5 Boilerplate CSS以获取示例。从Modernizr 1.5开始,这个脚本与流行的html5shim / html5shiv库中使用的脚本相同。两者都可以在IE6-8中实现HTML5元素的可打印性,但如果你有超过100kb的css,你可能想要尝试性能。
支持的浏览器我们支持IE6 +,Firefox 3.5 +,Opera 9.6 +,Safari 2 +,Chrome。在移动设备上,我们支持iOS的移动Safari,Android的WebKit浏览器,Opera Mobile,Firefox Mobile,虽然我们仍在进行更多测试,但我们相信我们支持Blackberry 6+。 ~http://modernizr.com/docs/#html5inie
至少以下标签:article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
使用HTML5shiv.js或在HTML条件注释中编写javascript代码。
<!--this condition is only for IE 8 and lesser browsers.-->
<!--[if lte IE 8]> // lte means LESS THAN & EQUAL TO IE8.
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('section');
document.createElement('aside');
document.createElement('footer');
</script>
<style>
header, nav, article, section, aside, footer{ display:block; }
</style>
//现在这些元素将支持IE8和更少的浏览器。
如果你不关心一点代码开销,只需使用内部DIV进行样式设置。
此部分无法通过CSS设置样式,IE <9(无HTML5支持)。即使你在section-tag中放了一个class-attribute。
<section class="section outer">
<h1>Level1</h1>
some text
<section class="section inner">
<h1>Level2</h1>
some more text
</section>
</section>
那是因为IE <9正在杀死未知标签的嵌套。 DOM看起来很疯狂:
<section class="section outer"></section>
<h1>Level1</h1>
some text
<section class="section inner"></section>
<h1>Level2</h1>
some more text
</section><//section>
</section><//section>
但是你可以使用DIV作为IE <9-Fallback,如果你不喜欢使用javascript shim。而不是设置SECTION的样式,只需设计内部DIV的样式。
<section>
<div class="section outer">
<h1>Level1</h1>
some text
<section>
<div class="section inner">
<h1>Level2</h1>
some more text
</div>
</section>
</div>
</section>
因此,您拥有适用于SEO的现代周边HTML5标签,所有样式都由DIV为每个浏览器照常完成。它是完全有效的HTML5,如果禁用javascript仍然有效。
使用下面给出的脚本...它会帮助你.. 对于每个新元素,您希望IE <9识别..add,如下所示:
使用document.createElement( “物品”); (在脚本标记内) 使用document.createElement( “页脚”); (在脚本标记内)
谢谢
更新 - 较新版本的IE确实支持HTML5结构元素,但较新的'main'元素除外。使用包含'main'元素(如normalize)的CSS重置将解决此问题。或者您可以将以下CSS添加到您的项目中:
main { display: block;}