開發前端的同學一定都知道,ie6是相容bug最多的瀏覽器,它不支援png alpha通道暫且不論。其文件的解析理解規範也引起了諸多惱人的bug,有時甚至讓人感到絕望。本文主要講解一些比較容易遇到的ie6bug,以及解決的辦法。
一、ie6雙倍邊距bug
當頁面上的元素使用float浮動時,不管是向左還是向右浮動;只要該元素帶有margin畫素都會使該值乘以2,例如「margin-left:10px」 在ie6中,該值就會被解析為20px。想要解決這個bug就需要在該元素中加入
display:inline 或 display:block
明確其元素型別即可解決雙倍邊距的bug
二、ie6中3畫素問題及解決辦法
當元素使用float浮動後,元素與相鄰的元素之間會產生3px的間隙。詭異的是如果右側的容器沒設定高度時3px的間隙在相鄰容器的內部,當設定高度後又跑到容器的相反側了。要解決這類bug的話,需要使布局在同一行的元素都加上float浮動。
三、ie6中奇數寬高的bug
ie6中奇數的高寬顯示大小與偶數高寬顯示大小存在一定的不同。其中要問題是出在奇數高寬上。要解決此類問題,只需要盡量將外部定位的div高寬寫成偶數即可。
四、ie6中鏈結的下方有間隙
ie6中的下方會存在一定的間隙,尤其在垂直挨著的時候,即可看到這樣的間隙。要解決此類問題,需要將img標籤定義為
display:block
或定義vertical-align對應的屬性。也可以為img對應的樣式寫入
font-size:0
五、ie6下空元素的高度bug
如果乙個元素中沒有任何內容,當在樣式中為這個元素設定了0-19px之間的高度時。此元素的高度始終為19px。
解決的方法有四種:
1.在元素的css中加入:overflow:hidden
2.在元素中插入html注釋:
3.在元素中插入html的空白符:
4.在元素的css中加入:font-size:0
六、重複文字的bug
在某些比較複雜的排版中,有時候浮動元素的最後一些字元會出現在clear清除元素的下面。
解決方法如下:
1.確保元素都帶有display:inline
2.在最後乙個元素上使用「margin-right:-3px
3.為浮動元素的最後乙個條目加上條件注釋,***
4.在容器的最後元素使用乙個空白的div,為這個div指定不超過容器的寬度。
七、ie6中 z-index失效
具體bug為,元素的父級元素設定的z-index為1,那麼其子級元素再設定z-index時會失效,其層級會繼承父級元素的設定,造成某些層級調整上的bug。詳細解釋可以閱讀ie6中部分情況下z-index無效的原因,以及解決辦法
結語:實際上ie6中,很多bug的解決方法都可以使用display:inline、font-size:0、float解決。因此我們在書寫**時要記住,一旦使用了float浮動,就為元素增加乙個display:inline樣式,可以有效的避免浮動造成的樣式錯亂問題。使用空div時,為了避免其高度影響布局美觀,也可以為其加上font-size:0 這樣就很容易避免一些相容上的問題。
ie6 常見bug解決之道
bug 1 解決div 無法遮擋 select 的問題 一現象 在調整頁面樣式時,經常發現浮動層的div被select遮擋。效果如下 二.原因 在ie中,select屬於window型別控制項,它會 擋住 所有非window型別控制項 可以這麼理解,div這樣的元件是在瀏覽器客戶區使用 渲染 的,他...
IE6常見BUG 和處理
1 ie6怪異解析之padding與border算入寬高 原因 未加文件宣告造成非盒模型解析 解決方法 加入文件宣告 2 ie6在塊元素 左右浮動 設定marin時造成margin雙倍 雙邊距 解決方法 display inline 3 以下三種其實是同一種bug,其實也不算是個bug,舉個例子 父...
IE6 重複字元的bug及解決方法
hidden ie6文字溢位的bug 今天在看乙個專案的測試版的時候,發現了ie6文字溢位的bug,文字出現了 重影 開始很快想到的是注釋,看了源 發現頁面裡根本沒有注釋。實在摸不著頭腦,祭出了google,注意到了當初沒有注意到的一句話 但ie6的這個重複bug也有些不是注釋造成的,但基本上都和浮...