ie6中兼容性问题总结

      针对firefox ie6 ie7 ie8的css样式中的line-height属性,以前我们大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7以上对!important可以正确解释,会导致页面没按要求显示!这些细节却往往影响了整个页面样式的美观性。搜索了一下,找到了一个针对IE7、IE8不错的hack方式,IE7使用*+html或*line-height: 方式。大概的总结如下: 

CSS可以参照如下定义,注意顺序: 
#menu { line-height: 23px; }  /* firefox 浏览器实行这句定义 */ 
#menu { line-height: 26px\9; }/*ie6,ie7,ie8 这句定义主要针对IE8来hack*/ 
#menu { *line-height: 23px; } /*ie6,ie7 这句定义主要针对IE7来hack*/ 
#menu { _line-height: 23px; } /*ie6 浏览器优先实行这句定义*/ 或者写成一句 

#menu { line-height:23px; line-height: 26px\9; *line-height: 23px; _line-height:23px; } 或者 

* html #menu { line-height: 23px; } /* IE6 浏览器实行这句定义 */ 
*+html #menu { line-height: 23px; } /* IE7 浏览器实行这句定义*/

IE6中浮动元素3px间隔Bug:

  发生场合:发生在一个元素浮动,然后一个不浮动的元素自然上浮与之靠近会出现的3px的bug。

  解决方法:右边元素也一起浮动;或者为右边元素添加IE6 Hack _margin-left:-3px;从而消除3px间距。

  原理分析:IE6浏览器缺陷Bug。

转载于:https://www.cnblogs.com/xuzhudong/p/6628749.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平