2011-08-12 74 views
0

我對css的知識非常有限。在一個更大的背景下,我需要做類似以下的事情:在IE中絕對定位的div寬度/高度(所有版本)

內部div進入其他divs。我試圖定位內部div,偏離瀏覽器窗口,並且大小是瀏覽器窗口的一定百分比。因此,我將以下CSS應用於內部分區

.abs_pos { 
    position: absolute; 
    top: 25%; 
    left: 25%; 
    width: 50%; 
    height: 50%; 
    background-color: yellow; 
    z-index:1002; 
    overflow: auto; 
} 

這適用於Chrome和Firefox。但在IE(所有版本)上,內部div的寬度成爲立即外部div的百分比,而不是瀏覽器窗口的百分比,而高度似乎是基於內部div的內容確定的。

我有鏈接這裏的示例html文件。 http://orissaclassifieds.com/pos.html

那麼我該如何做這項工作?謝謝你的幫助。

+0

如果以像素爲單位給出高度/寬度,它似乎可以工作(在IE中)。如果高度/寬度以百分比表示,則不起作用。 – rpat

回答

2

Your current代碼應該可以工作,但是您使用的是將IE發送到怪癖模式的無效/不完整文檔類型。

對於HTML4.01過渡應該是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

然而,一個更短/簡單的doctype使用HTML5是的。它將在所有瀏覽器中觸發標準模式:

<!DOCTYPE HTML> 
+0

謝謝。這適用於IE7和IE8。不在IE6上。這可能是IE6的問題? – rpat

+0

@rpat我相信IE6不支持該文檔類型 –

0

您可以通過父DIV使它在所有的瀏覽器有一個CSS規則:

position:relative; 
+0

如果我這樣做,div將在直接父div中。我需要看看我是否可以做到這一點相對於瀏覽器窗口。我使用Chrome/Firefox可以正常工作。我需要了解爲什麼IE中的行爲不同。 – rpat

0

原諒我,但我不明白爲什麼你用百分比爲每一個參數,也寬度和高度在另一個div內......除非主容器是主體頁面。在你的情況下,我應該使用像素,如果該div被放入另一個div中,則可以使用relative而不是絕對...即相對於您所在的容器...希望這有助於您的當前狀態

+0

如果它比例更好,那麼在瀏覽器重新調整大小時div會被重新調整大小。如果外部div位置設置爲相對,則事件將相對於直接外部div。我需要這個相對於瀏覽器窗口。我寧願不使用固定位置。我想知道爲什麼在IE中行爲不同。 – rpat

+0

瀏覽器調整大小...好的,但你認爲你在另一個div裏,或者我錯了嗎?你必須先決定外部div的行爲/位置......然後根據這個來調整內部。再見 – smepie

+0

我需要把div當作獨立的,即使它在另一個div裏。我讀絕對定位允許這個。適用於其他瀏覽器,而不是IE – rpat