有些浏览器并不支持HTML5中的新增元素,如IE8或更早版本。想要应用样式,可以头部标记<head>中加入下面JavaScript代码
1 <html> 2 <head> 3 <meta charset=uft-8"/> 4 <style> 5 header{ 6 color: red; 7 width: 500px; 8 } 9 </style> 10 <script>document.createElement("header")</script> 11 </head> 12 <body> 13 <header>Hello world!</header> 14 </body> 15 </html>
对重点就是document.createElement。考虑各个浏览器兼容性不同,可以对上面JS代码进行优化,即使用条件语句包含JS代码
IE9以下版本的IE将创建HTML5标签, 非IE浏览器会忽略这段代码,因此不会发生http请求,也就不影响网页执行效率。
1 <script> 2 (function() { 3 if (! 4 /*@cc_on!@*/ 5 0) return; 6 var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', '); 7 var i= e.length; 8 while (i--){ 9 document.createElement(e[i]) 10 } 11 })() 12 </script>
最后在css里面加上这段:
/*html5*/ article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
主要是让这些html5标签成块状,像div那样。
另外还有种能让IE识别那些新元素的途径就是使用HTML5 shiv,html5shiv的使用非常的简单,在你的网页中引入Google的html5shiv包(已经写好的直接可调用)在页面head中即可
1 <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
一定要加在<head></head>里调用 (因为浏览器必须先解释了这个脚本才能解析后面的html5标签,所以不能放在页面底部)