以便面试被问到的时候什么都说不出来……
不过现在已经不是之前需要关注ie6那些怪异兼容性问题的时代了,ie最多支持到8。
除了ie8的兼容性问题外,还有一些移动端的兼容问题。
面试中被问到的话,最好结合自己实际的经验说一下,什么情况下遇到的,怎么处理的,而不是背书。
使用reset来使所有浏览器初始样式相同
针对ie8
兼容性视图
当初IE8发布时,相对于IE6/7已经做出了非常大的改进,但是很多老站点仅针对IE6/7进行了优化,使用IE8渲染反而会一团糟。因此IE8加入了“兼容性视图”功能,这样的话就可以在IE8中使用IE6或IE7的内核渲染页面。
但是现在我们就需要使用meta标签来强制IE8使用最新的内核渲染页面。
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
IE=edge表示强制使用IE最新内核,chrome=1表示如果安装了针对IE6/7/8等版本的浏览器插件Google Chrome Frame(可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Chrome浏览器内核),那么就用Chrome内核来渲染。
国内很多浏览器都是双核的,如360、搜狗、QQ等:
- 基于Webkit内核用于常用网站的高速浏览
- 基于IE的内核用于兼容网银、旧版网站
媒体查询
ie11及以上才支持媒体查询,可以使用Respond.js,这是一个专门支持ie6-8使用媒体查询语法的polyfill。
html5标签
如果要在ie中使用html5的新标签,可以使用html5shiv,或者自己创建这些元素并设定其样式为block。
不支持opacity
可以使用filter
ie事件模型与其他浏览器不同
参考文章
IE8+兼容经验小结