css hacker

firefox认为是CSS语法错误,所以忽略。但是不同IE版本识别不同,不忽略,

所以能实现hack,并且*+HTML还能通过W3C验证

             IE6  IE7   FF

*          √  √  ×

!important    ×  √  √

background:orange; *background:red !important; *background:blue;

background:orange; *background:blue;

IE678 表现一样都为blue ,貌似important不起作用  FF均为orange

background:orange;*background:green;_background:blue

IE全都是blue

IE             FF

background:orange      678均识别       yes

_background:red;       678均识别       no

*background:blue       678均识别       no

区别IE6与FF:

       background:orange;*background:blue;

心得:ie678均为blue,FF为orange

 

区别IE6与IE7:

       background:green !important; background:blue;

心得:IE 均为后者定义的,看来都不识别important,而FF则是按important来的 

区别IE7与FF:

       background:orange; *background:green;

心得:同上

 

区别FF,IE7,IE6:

       background:orange;*background:green !important;*background:blue;

总结 ie都不识别important ,IE678如何区分????

FF 不识别  *background  _background 之类的

不过总算区分出IE 与FF了!!!也就是说在变现不同的地方重定义以下就OK了   

  

1、IE6 margin加倍  浮动闭合   IE与FF在容器width与height计算上的差异   

2、ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,不会被内容撑大,

而ie下是会被内容撑大,高度限定失效。所以不要轻易给容器定义height   

3、 文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间

是不一样的,ie下实际占高16px,下留白3px,ff 下实际占高17px,上留白1px,

下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所

有文字都有默认的 line-height 值   

4、横向上的撑破容器问题,。如果float 容器未定义宽度,ff下内容会尽可能撑开容器宽度,

ie下则会优先考虑内容折行。故,内容可能撑破的浮动容器需要定义width

4.最被痛恨的,double-margin bug。ie6下给浮动容器定义margin-left 或者margin-right 

实际效果是数值的2倍。解决方案,给浮动容器定义display:inline

5.mirror margin bug,当外层元素内有float元素时,外层元素如定义margin-top:14px,

将自动生成margin-bottom:14px。 padding也会出现类似问题,都是ie6下的特产,

该类bug 出现的情况较为复杂,远不只这一种出现条件,还没系统整理。解决方案:

外层元素设定border 或 设定float

6. 吞吃现象。还是ie6,上下两个div,上面的div设置背景,却发现下面没有设置背景

的div 也有了背景,这就是吞吃现象。对应上面的背景吞吃现象,还有滚动下边框

缺失的现象。解决方案:使用zoom:1。这个zoom好象是专门为解决ie6 bug而生的

9. 失去line-height。<div style=”line-height:20px”><img />文字</div>,很遗憾,

在ie6下单行文字 line-height 效果消失了。。。,原因是<img />这个inline-block

元素和inline元素写在一起了。解决方案:让img 和文字都 float起来

12.ie6下严重的bug,float元素如没定义宽度,内部如有div定义了height或zoom:1,

这个div就会占满一整行,即使你给了宽度。float元素如果作为布局用或复杂的容器,

都要给个宽度的

13.ie6下的bug,绝对定位的div下包含相对定位的div,如果给内层相对定位的div高度

height具体值,内层相对层将具有100%的width值,外层绝对层将被撑大。解决

方案给内层相对层float属

posted @ 2011-10-12 23:13  xiangzi888  阅读(1191)  评论(0编辑  收藏  举报