2010-08-29 68 views
1

與未知高度的另一格內100%我有一個簡單的HTML佈局:高度:在IE6

<div style="position:relative; width:200px"> 
    <div style="position:absolute; top:0; left:0; background-color:red; z-index:-1; width:100%; height: 100%"></div> 
    Some text goes here.... 
</div> 

事情是這樣的作品在所有瀏覽器很好,除了IE6。隨着文本的添加,頂部div被拉伸,絕對位置div也被拉伸。但在IE6中,絕對位置div總是隻能保持1行高度。我知道IE6不能動態地重新計算大小,因此你必須在身體標記上設置高度:100%,如果你想在頁面的任何位置使用高度:100%,但在這種情況下, t設置高度:100%的外部div,因爲我希望它只是正確的大小的文本里面。任何幫助?

+0

我已經開始了一個jsFiddle來演示這個問題:http://jsfiddle.net/yetdP/(記住問題只發生在IE6中)。目前正在尋找一種解決這個問題的優雅方式。 – 2010-08-31 13:19:25

+0

我在想這與IE的'hasLayout'屬性有關。這不是可以直接編輯的東西,強迫它的所有方法都失敗了,但我猜測它就是這樣。 – 2010-09-02 12:15:11

+0

通常在IE中修復hasLayout問題的簡單方法是設置縮放:1.我已經嘗試過了,儘管... – 2010-09-02 14:06:48

回答

0

經過大量的測試和調查後,我得出了一個結論,除了JavaScript之外,沒有辦法解決IE6的這個問題,這對我不起作用。所以我不得不改變一下結構。最終的結果看起來是這樣的:

<div style="position:relative; width:200px; background-color:red;"> 
    <div style="margin: -10px -20px">Some text goes here....</div> 
</div> 

這種方式,內div的內容是要在其上設置內部DIV和負利潤的高度,將確保外層的div始終是20像素大在內容div的高度和40px更大的寬度。我知道答案在查看問題時沒有任何意義,但它的工作方式與我需要的完全一樣,因爲它允許我在背景(外部div)上創建多個div,並將圖像調整爲div邊距,以便它佔據與所有背景div相同的空間量。

0

overflow: hidden;添加到絕對div。

+0

試過,它什麼也沒做.. – 2010-08-29 03:40:58

0

這是IE6中的一個已知錯誤,但對於我的生活我無法回想起解決方案。我會查找它,但是,從我的頭頂開始,嘗試添加'line-height:1'或某個值,並查看它是否修復它。

+0

謝謝,試過了行高,溢出,所有標準的東西,沒有任何工作。但行高和溢出是用於修復其他IE6問題,甚至空divs總是有一行文本的高度... – 2010-08-31 13:59:41