今天把網頁改成了HTML5的,調試了一下,在FF和Opera中都顯示正常了,到了IE6上卻變得面目全非了。GOOGLE了一下,發現了html5shiv這個項目,可以把HTML5的新元素轉換成IE6認識的內容。作者已經把這段代碼放到了Google code project上,只需要在你的head中調用這段代碼就行:
- <!--if lt IE 9]>
- <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
- <!--endif]-->
當然你也可以直接把這個檔案下載到自己的網站上。這個檔案必須在head標籤中調用,因為IE必須在元素解析這前知道這些元素,才能啟作用!或許你還要在你的CSS檔案中加上以下代碼,不然有可能會出現些莫名其妙的問題。
- header,nav,article,section,aside,footer{display:block;}
另外excanvas.js是Google為IE6支援canvas元素寫的指令碼,裡面有很詳細的例子,感興趣的朋友可以去試試。
Kill IE6
我也厭煩了IE6的特殊,所以也加了KILL IE6一族,所有用IE6訪問我的網站的朋友都會出Kill IE6的對話方塊,前提是你的瀏覽器允許執行JS檔案。方法很簡單,在你的網站的</body>之前加上以下代碼就可以了:
- <!--if lte IE 6]>
- <script src="http://letskillie6.googlecode.com/svn/trunk/letskillie6.zh_CN.pack.js"></script>
- <!--endif]-->
IE中的判斷語句
上面寫的<!--if lte IE 6]>在正常的HTML中屬於注釋,不會被執行,但在IE中是一個判斷語句,所以這些代碼只有在IE中才會被識別並載入。
lte:就是Less than or equal to的簡寫,也就是小於或等於的意思。
lt :就是Less than的簡寫,也就是小於的意思。
gte:就是Greater than or equal to的簡寫,也就是大於或等於的意思。
gt :就是Greater than的簡寫,也就是大於的意思。
! : 就是不等於的意思,跟javascript裡的不等於判斷符相同
來源文件 <http://www.caixw.com/archives/ie6-support-html5-and-kill-ie6.html>