日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

text-align:justify實(shí)現(xiàn)文本兩端對齊兼容IE( 二 )


haslayout 問題的調(diào)試與解決
當(dāng)網(wǎng)頁在 IE 中有異常表現(xiàn)時,可以嘗試激發(fā) haslayout 來看看是不是問題所在 。常用的方法是給某元素 css 設(shè)定 zoom:1。使用 zoom:1 是因為大多數(shù)情況下,它能在不影響現(xiàn)有環(huán)境的條件下激發(fā)元素的 haslayout 。而一旦問題消失,那基本上就可以判斷是 haslayout 的原因 。然后就可以通過設(shè)定相應(yīng)的 css 屬性來對這個問題進(jìn)行修正了 。建議首先要考慮的是設(shè)定元素的 width/height 屬性,其次再考慮其他屬性 。
對 IE6 及更早版本來說,常用的方法被稱為霍莉破解(Holly hack),即設(shè)定這個元素的高度為 1% (height:1%;) 。需要注意的是,當(dāng)這個元素的 overflow 屬性被設(shè)置為 visible 時,這個方法就失效了 ?;蛘呤褂?IE 的條件注釋 。
對 IE7 來說,最好的方法時設(shè)置元素的最小高度為 0 (min-height:0;) 。
haslayout 問題引起的常見 bug
IE6 及更低版本的雙空白邊浮動 bug
bug 修復(fù): display:inline;
IE5-6/win 的 3 像素偏移 bug
bug 修復(fù): _height:1%;
IE6 的躲躲貓(peek-a-boo) bug
bug 修復(fù): _height:1%;
這里列出觸發(fā) hasLayout 元素的一些效果
1.阻止外邊距折疊
兩個相連的 div 在垂直上的外邊距會發(fā)生疊加,而觸發(fā) hasLayout 的元素之間則不會有這種情況發(fā)生,如下圖:

text-align:justify實(shí)現(xiàn)文本兩端對齊兼容IE


上圖的例子中,三個 div 各包含一個 p 元素,三個 div 及其包含的 p 元素都有頂部和底部的外邊距,但只有第三個 div 的邊距沒有與它的子元素 p 的外邊距折疊 。這是因為第三個 div 使用 zoom: 1 觸發(fā)了 hasLayout ,阻止了它與它的子元素的外邊距折疊 。
另外,例子中也使用了 overflow: hidden 觸發(fā)元素的 BFC ,這利用了 BFC 阻止外邊距折疊的特性達(dá)到元素在 IE 與現(xiàn)代瀏覽器下的表現(xiàn)統(tǒng)一 。
2.可以包含浮動的子元素,即計算高度時包括其浮動子元素
效果如圖:
text-align:justify實(shí)現(xiàn)文本兩端對齊兼容IE


上圖的例子中,有兩個 div ,它們各包含一個設(shè)置了浮動的 p 元素,但第一個 div 實(shí)際被瀏覽器判斷為沒有高度和寬度,即高度為 0 ,上下邊框重疊在一起 。而第二個 div 使用 zoom: 1 觸發(fā)了 hasLayout ,可以包含浮動元素,因此能正確表現(xiàn)出高度,其邊框位置也正常了 。
本例子中也使用了 overflow: hidden 觸發(fā) BFC ,跟上例相似,這利用了 BFC 可以包含浮動子元素的特性達(dá)到元素在 IE 與現(xiàn)代瀏覽器下的表現(xiàn)統(tǒng)一 。
3.背景圖像顯示問題
元素背景圖不能正確顯示是網(wǎng)頁代碼重構(gòu)中最常見的問題之一了,在 IE 7 及以下的 IE 版本中,沒有設(shè)置高度、寬度的元素往往不能顯示出背景圖(背景色則顯示正常),這實(shí)際上與 hasLayout 有關(guān) 。實(shí)際的情況是,沒有觸發(fā) hasLayout 的元素不能顯示背景圖,上面有說過,觸發(fā) hasLayout 也就是使到元素?fù)碛胁季?,換句話說,擁有布局的元素才能正確顯示背景圖 。如下圖:
text-align:justify實(shí)現(xiàn)文本兩端對齊兼容IE


上圖兩個 div 都設(shè)置了背景圖,但只有使用 zoom: 1 觸發(fā)了 hasLayout 的第二個 div 才能正確顯示背景圖 。
本例子中沒有觸發(fā)元素的 BFC ,這是因為在現(xiàn)代瀏覽器中,元素本身并沒有背景圖顯示問題 。
以上本文講述text-align:justify實(shí)現(xiàn)文本兩端對齊 兼容IE,希望大家喜歡 。


推薦閱讀