HTML5 新增 header、footer、nav、article、hgroup... 等 Tag, 但是瀏覽器(ex: IE) 等等並不支援, 要怎麼解決呢?
靠 JavaScript 讓所有瀏覽器可以吃所有 HTML5 新增標籤的方法
在 2008年 John Resig's 就有提出簡單的解法: HTML5 Shiv
這篇寫的意思, 簡單說就是靠 JavaScript 來產生新的元素, 這樣子瀏覽器就可以認得這些 Tag, ex:
- document.createElement("article");
- document.createElement("footer");
- document.createElement("header");
- document.createElement("hgroup");
- document.createElement("nav");
當然後續就有人把該寫的 Script 完成, 如 HTML5 enabling script, Script 如下: (幫這些新增的 Tag 分別做 createElement())
- (function() {
- if (!
- /*@cc_on!@*/
- 0) return;
- var e = "abbr,article,aside,audio,canvas,datalist,details,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),
- i = e.length;
- while (i--) {
- document.createElement(e[i])
- }
- })();
目前看來使用 HTML5 Tag 的網站, 每個 HTML Head 裡面都會有下述這段 code: (上述 Script 壓縮, 並透過 Google code 提供此連結)
- <!--[if IE]>
- <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]-->
看來這個是目前普遍最常用的解法囉~
如果不想用 JavaScript 來解決的話, 還是可以用下述作法:
- ex: <footer>abc</footer>
- 使用 <div id="footer"><footer>abc</footer></div>
- 註: 此作法 CSS 不能指定 HTML5 的 Tag, CSS 只能抓取 #footer 來操作.