一、IE6雙倍邊距bug
當頁面上的元素使用float浮動時,不管是向左還是向右浮動;只要該元素帶有margin像素都會使該值乘以2,例如“margin-left:10px” 在IE6中,該值就會被解析為20px。想要解決這個BUG就需要在該元素中加入display:inline 或 display:block 明確其元素類型即可解決雙倍邊距的BUG
二、IE6中3像素問題及解決辦法
當元素使用float浮動后,元素與相鄰的元素之間會產(chǎn)生3px的間隙。詭異的是如果右側的容器沒設置高度時3px的間隙在相鄰容器的內(nèi)部,當設定高度后又跑到容器的相反側了。要解決這類BUG的話,需要使布局在同一行的元素都加上float浮動。
三、IE6中奇數(shù)寬高的BUG
IE6中奇數(shù)的高寬顯示大小與偶數(shù)高寬顯示大小存在一定的不同。其中要問題是出在奇數(shù)高寬上。要解決此類問題,只需要盡量將外部定位的div高寬寫成偶數(shù)即可。
四、IE6中圖片鏈接的下方有間隙
IE6中圖片的下方會存在一定的間隙,尤其在圖片垂直挨著圖片的時候,即可看到這樣的間隙。要解決此類問題,需要將img標簽定義為display:block 或定義vertical-align對應的屬性。也可以為img對應的樣式寫入font-size:0
五、IE6下空元素的高度BUG
如果一個元素中沒有任何內(nèi)容,當在樣式中為這個元素設置了0-19px之間的高度時。此元素的高度始終為19px。
解決的方法有四種:
1.在元素的css中加入:overflow:hidden
2.在元素中插入html注釋:
3.在元素中插入html的空白符:
4.在元素的css中加入:font-size:0
六、重復文字的BUG
在某些比較復雜的排版中,有時候浮動元素的最后一些字符會出現(xiàn)在clear清除元素的下面。
解決方法如下:
1.確保元素都帶有display:inline
2.在最后一個元素上使用“margin-right:-3px
3.為浮動元素的最后一個條目加上條件注釋,xxx
4.在容器的最后元素使用一個空白的div,為這個div指定不超過容器的寬度。
七、IE6中 z-index失效
具體BUG為,元素的父級元素設置的z-index為1,那么其子級元素再設置z-index時會失效,其層級會繼承父級元素的設置,造成某些層級調(diào)整上的BUG。詳細解釋可以閱讀IE6中部分情況下z-index無效的原因,以及解決辦法
結語:實際上IE6中,很多BUG的解決方法都可以使用display:inline、font-size:0、float解決。因此我們在書寫代碼時要記住,一旦使用了float浮動,就為元素增加一個display:inline樣式,可以有效的避免浮動造成的樣式錯亂問題。使用空DIV時,為了避免其高度影響布局美觀,也可以為其加上font-size:0 這樣就很容易避免一些兼容上的問題。