防止IE6出現BUG的十種常見解決方法

2022-03-05 03:13:28 字數 1640 閱讀 5941

以下介紹的十種解決方法是針對ie6經常會出現的div+css布局bug而使用的一些預設設定,由於ie6的bug比較多,所以我們製作頁面時經常會碰到一些莫名其妙的布局問題,每次碰到問題我們就會查詢對因的頁面位置與css,使用以下解決方法就可以避免一些常見的ie6的bug問題。

">

或者, xhtml頁面的!doctype:

">

你最不想看到的是,ie6進入怪癖模式 - 其實已經夠多怪癖了。

設定position:relative解決了不止乙個問題,特別當需要設定對齊的時候。很明顯,你需要明白的一點是,絕對定位是相對來說的。說不定,因為你沒有設定,而不知道東西都飛到那去了。比如,你設計了每篇文章前都有一張,最後,你發現,只有一張在頁面上,或許,是他們重疊了。

這源於著名的ie6雙倍外邊距bug,例如,你給乙個div設計了浮動,並且,設定了margin-left:5px;,在ie6中很可能就是margin-left:10px了,這裡,給浮動元素設定display:inline;,即可解決問題。

很多ie6(或ie7)的問題可以用設定haslayout值的方法來解決。(如果你不知道haslayout是什麼,請看這裡)

最簡單的給元素設定haslayout值的方法是給加上css 的height或width(當然,zoom也可以用,但這不是css的一部分)。設定乙個具體的值是推薦的,但有時候並不一定知道高度多少,這裡,你可能會用到height:1%。如果父元素沒有設定高度,那麼元素的物理高度並不會改變,但是,已經具備haslayout屬性。

複雜的布局可能導致一些浮動元素裡面的文字,出現在清理浮動位置的下面。這是乙個奇怪的問題,下面這此可以幫你解決:

update:最簡單的方法是刪除掉所有注釋。(感謝恬瑋兒的提示,我自己並沒有遇到過,不過,google了一下,發現這個方法也可以解決,並且,這是值得推薦的乙個方法。)

當然,你還是可以通過js來解決這個方法。但是, 這關於到可訪問性的問題。建議不要把重要的內容設定在利用js來實現的hover中。

比如min-height可以避免使用css來實現對ie的相容。

#element

ie6 並不能正確地識別min-height,可以設定固定的高度,讓ie6解析為20em。即使如此,它還是會因為內容的尺寸擴大而改變高度。而另乙個方法是使用高階選擇器:

#element

/* 忽略 ie6 */

#element[id]

比例會讓ie6變得錯亂,除非你給父元素新增乙個確切的高度。不然,給其他的加上!important,例如:

body

別忘記盡早測試,經常測試, 除非你的程度已經完成。不然,你可能花更多的時間來解決ie6的問題。一般情況下,如果你的**能在ie6和firefox下良好表現,估計其他瀏覽器就不會有什麼大問題了。(至少我自己深有體會)

很多情況下,解決乙個問題,可能比重構你的**要花更多的時間。比如上一次給公司寫乙個頻道頁面的,沒有一邊製作,一邊測試ie6的表現,導致最近有很多奇怪的問題,因為布局比較複雜。後來,乾脆重構**。用了2天。我想,如果是想解決方法,或許2天都搞不定。

轉貼 IE6出現BUG的十種常見解決方法

ie8都發布了,而且也很好用,但是從市場占有率分析還是有n多人喜歡用可惡的ie6,所以不得以,我們還是得在各個版本的ie以及非ie的瀏覽器之間繼續折騰,如果你遇到了ie6的奇怪問題,請參考以下的解決辦法 原文 以下介紹的十種解決方法是針對ie6經常會出現的div css布局bug而使用的一些預設設定...

關於ie6出現的問題的原因歸結

關於ie6出現的問題主要可以歸結為以下幾種情況把。當然還存在各種原因,bug的情況也還有各種各樣,我只是小結一下我自己經常遇到,比較有代表性的問題。會持續的更新。1。瀏覽器本身存在的缺陷 比如 1 左浮動的元素,加了左補白 margin left 就會出現雙倍邊距的問題。我們可以盡量去避免這些問題,...

IE6中onresize 卡死的BUG

發現這個bug是由於ie6解析onresize方法與其他瀏覽器解析不盡相同。後來通過一段網上搜尋到的 成功解決。下面分享一下 view plain copy to clipboard print?vart 0 window.onresize function 第二個問題的問題比較傻,在ie6中,如果...