2010-12-12 85 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