做网站开发,一提到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%;}
}