写css代码的时候经常会遇到ie和ff效果不一致的问题,就会用到css hack方法,ie7出现之前,ie是不支持!important 的,可以通过加!important 来为ie和firefox设置不同的css代码以达到相同的显示效果,当然也可以通过这个来达到不同的显示效果,但是ie7出现之后这个方法就不灵了,因为ie7支持!important ,用了!important 可能在ie7下的效果又不对了,出现这种情况的时候我们该怎么办呢?
当然如果你的css水平很高的话可能遇到此问题的可能性比较小,但是还是可能会出现这种问题的。由此问题产生了下面的兼容ie6,ie7,firefox的css hack写法:
#test { width:200px} /*FireFox*/
*html #test {width:220px} /*IE6*/
*+html #test {width:210px} /*IE7*/
为什么这种写法可以达到完美兼容ie6,ie7,ff呢,因为第一种写法三种浏览器都能识别,而firefox不能识别后面*html和*+html两种写法,所以在firefox下对应的有效代码是第一行代码,而*html是ie的特有的标签,*+html是ie7的特有的标签,ie6不支持*+html,所以ie6能识别第一行和第二行代码,再加上第二行代码覆盖了第一行代码的定义,因此在ie6下的有效代码就是第二行代码,ie7能识别三种写法,第三种覆盖了前两种,所以ie7下的有效代码就是第三行代码了,这样就做到了完美兼容ie6,ie7,firefox。
<script type="text/javascript"></script>