2010-12-12 88 views
1

我的理解是position: absolute對於擁有非靜態位置的第一位父母是絕對的。如果父母沒有指定的位置,那麼它對瀏覽器/窗口是絕對的。位置:絕對絕對到瀏覽器/窗口

position: fixed另一方面將是絕對的瀏覽器,但它不適用於IE瀏覽器,如果在怪癖模式。

我的問題是,我想要的東西是top:0; left:0;但網站是在怪癖模式,我只在我的個人股利編輯。 (這是一個像myspace這樣的用戶網站)。有許多父母divs position: relative

我怎樣才能讓position: absolute的行爲像position: fixed而不需要對象靜止(如果需要,它可以是靜止的)?

+0

你可以殺死整個外部HTML使用JavaScript? '' – thejh 2010-12-12 11:19:54

+0

@thejh我試過,IE抱怨「在子元素關閉之前無法修改父容器元素」 – ParoX 2010-12-12 12:10:10

+0

在onload處理程序中執行此操作。在窗口中添加一個'load'處理程序。 – thejh 2010-12-13 21:36:03

回答

1

早期版本的IE只是不支持position:fixed;

我所知道的唯一的事情是javacript解決方法,像這樣:

var layerPadding = 5; 
function layerScrollFixEx() { 
    if (layerGetScrollPosition() != (document.getElementById('layer').offsetTop - layerPadding)) { 
     document.getElementById('layer').style.top = layerGetScrollPosition() + layerPadding + "px"; 
    } 
} 

function layerGetScrollPosition() { 
    if (typeof window.pageYOffset != 'undefined') { 
     return window.pageYOffset; 
    } 
    else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { 
     return document.documentElement.scrollTop; 
    } 
     else if (typeof document.body != 'undefined') { 
     return document.body.scrollTop; 
    } 
} 
layerScrollInterval = window.setInterval("layerScrollFixEx()", 1); 

這是一些代碼,我做了,而回來時,這仍然是一個相關的代碼片段。

+0

這似乎只是通過重新定義其位置來模仿在一個地方「修復」的能力。我正在尋找做'top:0; left:0'參考瀏覽器窗口 – ParoX 2010-12-12 12:14:28

+0

多數民衆贊成就是它,樣本只顯示垂直滾動的修復...但你可以很容易地適應你想要的元素 – 2010-12-12 13:13:19

+0

保持它在滾動而不是你的位置?那是固定的位置。否則你需要絕對位置,這是完全支持... – 2010-12-12 13:13:54