将全局绝对位置设置为div

时间:2012-04-27 19:05:10

标签: jquery html css position css-position

我使用jquery的.offset()抓取元素的位置,然后将div设置为position:absolute;并根据我获得的信息设置lefttop来自offset()

只要所有元素的父项都被静态定位,因为position:absolute被定义为

  

“元素相对于其第一个定位(不是   静态)祖先元素“

所以现在我有两个选择来解决这个问题:

  1. 以某种方式强制元素相对于文档定位。我没有在css规范中看到任何允许我这样做的内容。 (如果我错了,请纠正我。)
  2. 使用一个函数来捕获元素相对于其第一个定位的祖先元素的位置,而不是使用offset()。 (我没有看到任何jQuery函数执行此操作。有position()但是它相对于元素的父级而言。
  3. 我如何做这两个选项中的任何一个?

2 个答案:

答案 0 :(得分:2)

添加评论作为答案,以便您接受:

删除节点并将其重新连接到正文,使其相对于文档。不理想,但它允许你正确定位。

答案 1 :(得分:1)

你实际上可以设置左/顶,因为它会覆盖该描述。如果你只是将它保留为“绝对”,它将按照描述定位自己:相对于它之前的第一个静态元素。如果设置左/上,它应该正确定位。

唯一不适用的是父元素是否具有相对定位。然后你有点搞砸了:/