【问题标题】:set globally absolute position to a div将全局绝对位置设置为 div
【发布时间】:2012-04-27 19:05:10
【问题描述】:

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

只要所有元素的父元素都是静态定位的,这就会起作用,因为position:absolute 被定义为

"元素的定位是相对于它的第一个定位(不是 static) 祖先元素"

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

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

我该如何选择这两个选项?

【问题讨论】:

  • 您可以删除节点并将其重新附加到正文,使其相对于文档。不理想,但它可以让您正确定位它。
  • 您可以使用 position: fixed,但这会将图层 到它们的位置。你可以试试@Mathletics 所说的,将元素从他们的父母身上移到身体里。
  • @Mathletics,添加它作为答案,它就像一个魅力:)

标签: jquery html css position css-position


【解决方案1】:

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

删除节点并将其重新附加到正文,使其相对于文档。不理想,但它可以让您正确定位它。

【讨论】:

    【解决方案2】:

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

    唯一不正确的情况是父元素具有相对定位。那你有点搞砸了:/

    【讨论】:

    • 是的,就是这样,父级有一个相对定位=/
    猜你喜欢
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2019-07-08
    • 2019-01-25
    相关资源
    最近更新 更多