2009-11-03 84 views
0

我剛剛遇到了IE6的錯誤,我似乎沒有通過網絡識別。IE6 border-bottom:0&padding CSS問題

基本上這是觸發行爲的時候:塊元素具有邊界,除了底部和頂部/底部填充之外的所有邊上。裏面還有另一個塊元素。

我的整個代碼是大,以適應在這裏,但我把範圍縮小到這個簡單的例子:

<div style="border: 5px solid red; border-bottom: 0; padding: 5px;"> 
    <p>adasasasdas</p> 
</div> 
Following stuff 

現在不順心的事情是「繼東西」的位置(不管那是),將會被奇怪地改變。在這種情況下左邊有幾個像素。

要禁用奇怪的行爲我可以保持下邊框,擺脫填充或使內聯元素。但我有點想要他們兩個。在我必須放棄它之前,我想看看是否有關於這個bug的知識,以及是否有其他解決方案。

謝謝!

回答

0

我的解決將是

<div style="border: 5px solid red; padding: 5px; padding-bottom:4px; border-bottom: 1px solid white;"> 
    <p>adasasasdas</p> 
</div> 
Following stuff 

但可能不適用你根據上下文的

0

這可能會幫助你

<div style="border-left: 5px solid red; border-top: 5px solid red; padding: 0px;"> <p style="margin:0px; padding:10px;">adasasasdas</p> </div> Following stuff

如果你想填充調整邊距在<p>標籤

1

這是一個很好的修復程序的bug:

<div style="border: 5px solid red; border-bottom: 0; padding: 5px; font-size:0"> 
    <p style="font-size:16">adasasasdas</p>&nbsp 
</div> 
Following stuff 

基本上,必須有在div的末尾一些嵌入式文本爲IE6正確呈現它。由於&在底部添加了一行,我在div中將字體大小更改爲0,然後在<p>內將字體大小更改爲16(或任何您通常使用的內容)。這對div的高度影響非常小(在所有主流瀏覽器中約爲2像素),但對用戶來說不應該引起注意。或者,您可以嘗試在div中將line-height變量更改爲0%,然後回到p中的100%,但似乎在嘗試時將div的高度比font-size方法多了幾個像素。

0

嘿,我知道這是舊的,但我也花了幾個小時與這個bug進行鬥爭(事實上,我花了很長時間才弄清楚,這是因爲邊界底部+填充底部......這是一個恥辱,因爲如果我知道要搜索什麼,我會早點發現)。

無論如何,突然想到這是ie6中hasLayout問題的另一種表現形式。爲了達到我的目的,突然添加「zoom:1」給這些令人討厭的div,並且神奇地修復它,這樣做的好處在於不會因字體大小和行高等而煩惱。