关于IE浏览器兼容性的3种解决方案

  • 背景
    浏览器兼容性问题一直是前端工程中的棘手问题,特别是IE6、7、8、9对W3C标准的支持有一定的缺陷,而国产浏览器大部分都是使用IE6/7,因此兼容低版本的IE就是显得非常重要了。

  • 兼容IE的3种方案
    经过阅读阿当的《编写高质量代码--Web前端开发修炼之道》和阅读hao123的源码归纳出四种流行的IE兼容性方案。

1.HTML条件注释加载对应版本的css文件

IE官方的HTML条件注释是IE官方推出用于解决IE浏览器兼容性问题的方。

页面例子:
>这种方案的可以方便地删除某个IE版本的兼容代码,比如有一天IE6没有了,可以删除ie6.css,因为是IE官方推荐的,因此也更稳定。
但是这种方案将标准代码和兼容性代码放在不同位置,不好维护,理论上,兼容性代码应该放在标准代码的后面。

######2.使用css样式hack
给CSS样式添加一些前缀,那么该样式声明就只会被特别的浏览器识别,我们可 以通过这种方式进行浏览器兼容处理。

/IE 8/9/10/11/
background: blue\0;
/IE 6/7/*
background: #cda;
/IE 6/
-background: red;
_background: red;


 例子:

.test{
background: black;
/IE 7/
background: red;
/
IE 6*/
_background: red;
}

>这种方式的优点是标准样式和兼容性代码可以放在一起,但是不能保证最新的IE浏览器会不会因为识别这种兼容性代码,而代码新的兼容新问题。不过,目前IE已经停止发布,因此,我们可以放心使用了。

######3.HTML条件注释给html标签添加标志class,通过标志css写兼容代码
这个方案区别于前面两个,前面两个虽然CSS的兼容性代码所存放的位置不同,但是代码还是一样的,都是使用_和\*等方式进行兼容性处理。
这里通过给html标签添加class,y用来识别当前的浏览器,进而通过标准的CSS样式处理兼容性问题!
**代码**:



 例子:








>这个方案可以作为css 样式前缀的hack方案,并且不用担心将来浏览器的兼容问题,因为她是标准的。**[可以作为浏览器兼容的首选方案]()**。

你可能感兴趣的:(关于IE浏览器兼容性的3种解决方案)