如何使用Jquery设置DIV的绝对位置?

时间:2011-06-28 10:31:53

标签: jquery css position

我有这样的代码:

$('#lol').css({ position: "absolute",

        marginLeft: 0, marginTop: 0,

        top: 0, left: 0});

问题是我的div位于相对位置,所以它是div的0点而不是整个窗口。那是为什么?

5 个答案:

答案 0 :(得分:9)

正如其他答案中所指出的,#lol的至少一个父元素具有position集,这会导致您的元素位于父元素中。

使用jQuery的解决方案是将元素直接附加到body。

$('#lol').css({ 
    position: "absolute",
    marginLeft: 0, marginTop: 0,
    top: 0, left: 0
}).appendTo('body');

这将使其显示在窗口的左上角。

答案 1 :(得分:3)

  

为什么?

如果您想相对于整个窗口使用position: absolute,则需要确保#lol没有父元素也位于absolutefixedrelative

否则,您指定的任何定位都将相对于它们进行。

答案 2 :(得分:3)

具有position: relativeposition: absolute的元素将相对于具有position: relativeposition: absolute的最近父级进行定位。因此,如果您希望元素相对于整个窗口定位,请将其保留在具有相对或绝对位置的任何父包装之外。

答案 3 :(得分:0)

这就是定位的工作原理。如果您有任何指定任何位置的父元素,则绝对定位将相对于它们发生。

如果你想要它到窗口但不能取消任何其他元素的定位,你需要手动或用一些JS从常规页面流中删除该项。

答案 4 :(得分:0)

如果你想在相对于整个窗口屏幕的元素上使用绝对:位置,那么该元素的任何父元素都不应该给出任何位置值,如绝对,固定或相对,因为元素将如果给它任何位置属性,则取相对于其父项的位置。     希望它能很好地回答你...... :)