在IE6,7中遇到未知的問題無法解決時可以嘗試觸發(fā)其layout
發(fā)布時間:2014-02-12 16:18:41 作者:佚名
我要評論

在IE6,7中如果發(fā)現(xiàn)某個異常不知道如何解決的時候可以嘗試著觸發(fā)其haslayout,有類似情況的朋友可以參考下本文
在IE6,7中如果發(fā)現(xiàn)某個異常不知道如何解決的時候可以嘗試著觸發(fā)其haslayout:
鄙人不才,今天也遇到了一個bug嘗試了很多方法,最終在整個父類加上一個height:1%,然后順利解決。
height:1%
position: absolute
float: left | right
display: inline-block
width: !auto - 除auto以外的值
height: !auto - 除auto以外的值
zoom: !normal - 除normal以外的值
writing-mode: tb-rl
overflow: hidden | scroll | auto - IE7有效
position: fixed - IE7有效
min-width: * - IE7有效,任何值
min-height: * -IE7有效,任何值
max-width: !none - IE7有效,除none外任何值
max-height: !none - IE7有效,除none外任何值
對于內聯(lián)元素(默認即為內聯(lián)的元素,如 span,或 display:inline; 的元素),
而對于 IE6,如果瀏覽器運行于標準兼容模式下,內聯(lián)元素會忽略 width 或 height 屬性,所以設置 width 或 height 不能在此種情況下令該元素具有 layout。
zoom 總是可以觸發(fā) hasLayout,但是在 IE5.0 中不支持。
具有“layout” 的元素如果同時 display: inline ,那么它的行為就和標準中所說的 inline-block 很類似了:在段落中和普通文字一樣在水平方向和連續(xù)排列,受 vertical-align 影響,并且大小可以根據(jù)內容自適應調整。這也可以解釋為什么單單在 IE/Win 中內聯(lián)元素可以包含塊級元素而少出問題,因為在別的瀏覽器中 display: inline 就是內聯(lián),不像 IE 一旦內聯(lián)元素擁有 layout 還會變成 inline-block。
haslayout 問題的調試與解決
當網(wǎng)頁在 IE 中有異常表現(xiàn)時,可以嘗試激發(fā) haslayout 來看看是不是問題所在。常用的方法是給某元素 css 設定 zoom:1 。使用 zoom:1 是因為大多數(shù)情況下,它能在不影響現(xiàn)有環(huán)境的條件下激發(fā)元素的 haslayout。而一旦問題消失,那基本上就可以判斷是 haslayout 的原因。然后就可以通過設定相應的 css 屬性來對這個問題進行修正了。建議首先要考慮的是設定元素的 width/height 屬性,其次再考慮其他屬性。
對 IE6 及更早版本來說,常用的方法被稱為霍莉破解(Holly hack),即設定這個元素的高度為 1% (height:1%;)。需要注意的是,當這個元素的 overflow 屬性被設置為 visible 時,這個方法就失效了。或者使用 IE 的條件注釋。
對 IE7 來說,最好的方法時設置元素的最小高度為 0 (min-height:0;)。
haslayout 問題引起的常見 bug
IE6 及更低版本的雙空白邊浮動 bug
bug 修復: display:inline;
IE5-6/win 的 3 像素偏移 bug
bug 修復: _height:1%;
E6 的躲躲貓(peek-a-boo) bug
bug 修復: _height:1%;
鄙人不才,今天也遇到了一個bug嘗試了很多方法,最終在整個父類加上一個height:1%,然后順利解決。
復制代碼
代碼如下:height:1%
position: absolute
float: left | right
display: inline-block
width: !auto - 除auto以外的值
height: !auto - 除auto以外的值
zoom: !normal - 除normal以外的值
writing-mode: tb-rl
overflow: hidden | scroll | auto - IE7有效
position: fixed - IE7有效
min-width: * - IE7有效,任何值
min-height: * -IE7有效,任何值
max-width: !none - IE7有效,除none外任何值
max-height: !none - IE7有效,除none外任何值
對于內聯(lián)元素(默認即為內聯(lián)的元素,如 span,或 display:inline; 的元素),
而對于 IE6,如果瀏覽器運行于標準兼容模式下,內聯(lián)元素會忽略 width 或 height 屬性,所以設置 width 或 height 不能在此種情況下令該元素具有 layout。
zoom 總是可以觸發(fā) hasLayout,但是在 IE5.0 中不支持。
具有“layout” 的元素如果同時 display: inline ,那么它的行為就和標準中所說的 inline-block 很類似了:在段落中和普通文字一樣在水平方向和連續(xù)排列,受 vertical-align 影響,并且大小可以根據(jù)內容自適應調整。這也可以解釋為什么單單在 IE/Win 中內聯(lián)元素可以包含塊級元素而少出問題,因為在別的瀏覽器中 display: inline 就是內聯(lián),不像 IE 一旦內聯(lián)元素擁有 layout 還會變成 inline-block。
haslayout 問題的調試與解決
當網(wǎng)頁在 IE 中有異常表現(xiàn)時,可以嘗試激發(fā) haslayout 來看看是不是問題所在。常用的方法是給某元素 css 設定 zoom:1 。使用 zoom:1 是因為大多數(shù)情況下,它能在不影響現(xiàn)有環(huán)境的條件下激發(fā)元素的 haslayout。而一旦問題消失,那基本上就可以判斷是 haslayout 的原因。然后就可以通過設定相應的 css 屬性來對這個問題進行修正了。建議首先要考慮的是設定元素的 width/height 屬性,其次再考慮其他屬性。
對 IE6 及更早版本來說,常用的方法被稱為霍莉破解(Holly hack),即設定這個元素的高度為 1% (height:1%;)。需要注意的是,當這個元素的 overflow 屬性被設置為 visible 時,這個方法就失效了。或者使用 IE 的條件注釋。
對 IE7 來說,最好的方法時設置元素的最小高度為 0 (min-height:0;)。
haslayout 問題引起的常見 bug
IE6 及更低版本的雙空白邊浮動 bug
bug 修復: display:inline;
IE5-6/win 的 3 像素偏移 bug
bug 修復: _height:1%;
E6 的躲躲貓(peek-a-boo) bug
bug 修復: _height:1%;
相關文章
- 這篇文章主要介紹了淺談原生頁面兼容IE9問題的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2020-12-16
- 這篇文章主要介紹了新版chrome瀏覽器設置允許跨域的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2020-11-30
css hack之\9和\0就可能對hack IE11\IE9\IE8無效
每次設計一張網(wǎng)頁或一個表單,都被各種瀏覽器的兼容問題傷透腦筋,尤其是IE家族。在做兼容性設計時,我們往往會使用各種瀏覽器能識別的獨特語法進行hack,從而達到各種瀏覽2020-03-20css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼
這篇文章主要介紹了css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼,需要的朋友可以參考下2020-03-20- 這篇文章主要介紹了解決CSS瀏覽器兼容性問題的4種方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學2020-02-28
- 這篇文章主要介紹了常見的瀏覽器兼容性問題(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學2020-02-20
- 這篇文章主要介紹了border-radius IE8兼容處理的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學2020-02-12
- 這篇文章主要介紹了淺談遇到的幾個瀏覽器兼容性問題,詳細的介紹了幾種我遇到的問題和解決方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-26
- 這篇文章主要介紹了base64圖片在各種瀏覽器的兼容性處理的相關資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-14
- 這篇文章主要介紹了對常見的css屬性進行瀏覽器兼容性總結(推薦)的相關資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-20