IE6兼容性大全(终极版)三

IE6兼容性大全(终极版)三

接上文  IE6兼容性大全(终极版)二

5.5 100% 高度

在IE6下,如果要给元素定义100%高度,必须要明确定义它的父级元素的高度,如果你需要给元素定义满屏的高度,就得先给html[/i]和[i]body[/i]定义[i]height:100%;。

5.6 最小宽度

同max-height[/i]和[i]max-width[/i]一样,IE6也不支持[i]min-width。有2个方法实现最小宽度,使用额外的标签、使用JavaScript。


 

5.7 IE双双倍边距的BUG

IE的双倍边距问题是我们最常见到的。在布局中当左右两个块级元素均为float时,两个元素之间的外边距(margin值)会被IE错误的计算为双倍距离。解决方法很简单,就是给元素添加display:inline,取消元素的块级属性。

5.8清除浮动

如果你想用div(或其他容器)包裹一个浮动的元素,你会发现必须给div(容器)定义明确的height[/i]、[i]width[/i]、[i]overflow之中一个属性(除了auto值)才能将浮动元素严实地包裹。

5.9浮动层错位

当内容超出外包容器定义的宽度时会导致浮动层错位问题。在Firefox、IE7及其他标准浏览器里,超出的内容仅仅只是超出边缘;但在IE6中容器会忽视定义的width值,宽度会错误地随内容宽度增长而增长。如果在这个浮动元素之后还跟着一个浮动元素,那么就会导致错位问题。

浮动层错位问题在IE6下没有真正让人满意的解决方法,虽然可以使用overflow:hidden;[/i]或[i]overflow:scroll;[/i]来修正,但[i]hidden[/i]容易导致其他一些问题,[i]scroll会破坏设计;JavaScript也没法很好地解决这个问题。所以我的建议是一定要避免这个问题发生,使用一个固定的布局或者控制好内容的宽度。

5.10 躲猫猫bug

在IE6和IE7下,躲猫猫bug是一个非常恼人的问题。一个撑破了容器的浮动元素,如果在他之后有不浮动的内容,并且有一些定义了:hover的链接,当鼠标移到那些链接上时,在IE6下就会触发躲猫猫。解决的方法很简单在(那个未浮动的)内容之后添加一个<span style="clear:both;"></span>

5.11 3像素间距bug

在IE6中,当文本(或无浮动元素)跟在一个浮动的元素之后,文本和这个浮动元素之间会多出3像素的间隔。解决的方法就是给浮动层添加 display:inline 和 -3px 负值margin。

5.12 IE下z-index的bug

在IE浏览器中,定位元素的z-index[/i]层级是相对于各自的父级容器,所以会导致[i]z-index[/i]出现错误的表现。解决方法是给其父级元素定义[i]z-index[/i],有些情况下还需要定义[i]position:relative。

5.13 Overflow Bug

在IE6/7中,overflow[/i]无法正确的隐藏有相对定位[i]position:relative;[/i]的子元素。解决方法就是给外包容器[i].wrap[/i]加上[i]position:relative;。

结束语:IE6虽然让人深恶痛绝,但是当你真正掌握了前端设计的精髓,在设计之初就构思好的布局,避免使用兼容问题的代码,尽量少用甚至不用CSS hack,达到用户良好的体验才是我们追求的根本。

看过本文的读者还看过:

IE6兼容性大全(终极版)二

IE6兼容性大全(终极版)一