2009-04-22 78 views
1

是否有清潔的替代不會使下面的文字消失:是否有替代IE的填充不會使文本消失的填充?

<div style="background-color:#ddd; padding:10px 0 50px 0;"> 
<ol><li>In what year were you born?</li></ol> 
<div><select name="c_record" size="1"> 
    <option value="">-- Select One --</option> 
    <option value="1">1900</option> 
    <option value="2">1902</option> 
</select></div> 
</div> 

如果我改變在外面div來填充:padding:10px 0 0 0;文本再次出現。

我也試過在最外面的div裏面添加第二個div,並在其中添加填充,但這也不起作用。爲此div內部添加邊距不會對頂部和底部邊距產生任何影響。

任何想法?

編輯:我使用IE 6 & 7,我在頁面上沒有其他代碼,沒有文檔類型,樣式 - 只是上面的代碼。

+0

我將上面的代碼複製到一個html文件中,並且在我的IE7中不會發生該問題。你是否在使用其他版本,如IE6或8? – Cyberherbalist 2009-04-22 15:49:21

+0

當使用IE7且未指定文檔類型時,IE假定它必須使用IE6兼容的渲染器。 – voyager 2009-04-22 19:34:31

回答

3

添加位置:相對;到你的風格將解決這個問題。它被稱爲Peekaboo bug。

Here是一個鏈接,更詳細地解釋它。

我同意你應該嘗試使用邊距,因爲添加位置:相對會導致其他問題。另外,瀏覽器並不一致地遵循帶有填充的框模型標準。

0

嘗試保證金而不是填充?

+0

保證金不起作用,因爲我需要顯示背景。 – 2009-04-22 15:45:53

+0

你仍然可以使用邊距,並在它下面有一個div來保存背景。 – Samuel 2009-04-22 15:50:19

+0

試過了,但它引起了同樣的問題(更新了問題)。 – 2009-04-22 15:54:56

0

這些是唯一的樣式嗎?如果有任何浮動事物變得複雜得很快。請在它自己的文件中使用doctype,html,head等來嘗試此操作。上述內容沒有任何問題。

0

我使用IE 6 & 7,我沒有 其他代碼的網頁上,沒有DOCTYPE, 樣式 - 只是上面的代碼。

通過讓IE默認爲怪癖模式解決問題只是愚蠢的。

在任何情況下,@Jeremy B都有很好的解決方案,高度爲1%。這對我在IE6中工作得很好:

<div style="background-color:#ddd; padding:10px 0 50px 0; height: 1%;">