2011-05-09 25 views
0

我有幾個DIV圖像使用position: absolute進行了格式化,因此它們不會干擾DIV中其他元素(文本)的位置。使用位置的絕對大小的元素,動態插入上面的塊 - 什麼是正確的行爲?

當尺寸爲728x90的IFRAME在文檔中的DIV上方動態創建時,Firefox,MSIE8,Opera 11. *甚至K-Meleon 1.5.4將DIV以及包含的圖像向下移動90個像素。只有Safari(5.0.4)會向下移動DIV,但不會插入插入IFRAME之前插入位置的圖像。

我的問題:看到的兩種行爲中的哪一種是正確的(如果有的話)(可能未定義),爲什麼?雖然大多數瀏覽器都有一個有用的行爲,但Safari似乎是通過在添加時將相對於父元素的位置設置爲除「靜態」之外的位置來做到「正確」。

(以下簡稱「修復」是添加到position: relative包含圖像的DIV的,但我想知道爲什麼只有Safari瀏覽器需要它)

回答

0

您必須添加position:relative;到你想要的position:absolute;容器元素元素相對於。這是正常的,正確的行爲。

如果你不這樣做,它們將與<body>有關,這看起來並不是你想要的。

+0

感謝您的回答,但我知道已經(最後在問題中說過) - 我的問題是爲什麼大多數瀏覽器的行爲與您寫作時需要的行爲類似。也許有一些定義的行爲是(應該)觸發的,Safari是錯誤的,或者它是未定義的,或者Safari是正確的,而其他的則不是。我只想知道是哪種情況,我已經知道如何「修復」它。 – mjy 2011-05-09 16:07:06

+0

@mjy我的錯誤,我認爲你對「修復」爲什麼修復它感到困惑。 – Tim 2011-05-09 23:01:41

相關問題