做網站開發,一提到IE,就會讓人頭大,有一肚子的牢騷要發:微軟為什么不跟着國際標准走呢,總是獨樹一幟,搞出那么多問題來。IE的firebug調試工具也不太好用,尤其是低版本的IE,更是讓人頭疼。
最近在做一個項目,本來要結項了,結果客戶要求必須要滿足IE8,不得不硬着頭皮開始做IE8的兼容。
我們后台用的coffeescript語法,前台用的coffeekup語法。
兼容1:IE8下引用一些文件 ,語法如下
ie "lte IE 8", ->
link href:"/css/IE.css", rel:"stylesheet"
項目中犯過的錯:IE 8寫成了IE8,中間的空格漏掉了,所以頁面上總是顯示文本:
<!--[if lte IE8]><![endif]-->
兼容2:IE8下上傳文件用jquery file upload,沒辦法把上傳的文件提交到后台,原因是在IE8下沒有file文件類型,所以只是讀到了文件路徑,沒有讀到上傳文件的大小
jquery file upload對IE的支持不是很好,所以很多方法不支持,例如progressall file
解決方法:上傳直接用form的submit()方法實現
兼容3:IE8 css hack
IE8下顯示寬度為40px;大於IE8,以及其他的瀏覽器寬度為100%
.time-form{width:40px;\9}
@media all and (min-width: 0){
.time-form{width:100%;}
}