HTML5新添了一些語義化標簽,他們能讓代碼語義化更直觀易懂,有利於SEO優化。但是此HTML5新標簽在IE6/IE7/IE8上並不能識別,需要進行JavaScript處理。
解決思路就是用js創建html5中的新標簽,代碼如下:
<script> (function() { if (! /*@cc_on!@*/ 0) return; 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(', '); var i= e.length; while (i--){ document.createElement(e[i]) } })() </script>
對於上面的代碼要初始化新標簽的CSS.因為HTML5在默認情況下表現為內聯元素,對這些元素進行布局我們需要利用CSS手工把它們轉為塊狀元素方便布局。
另外對於代碼中if (! /*@cc_on!@*/ 0) return;是什么意思大多數人會有困惑,主要是用於判斷瀏覽器是否支持注釋條件編譯。在Internet Explorer 11標准模式和Windows應用商店應用中不支持條件編譯。 在Internet Explorer 10標准模式和所有早期版本中支持條件編譯。這樣非IE瀏覽器就會忽視這段代碼,也就不會有無謂的http請求了。