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