【发布时间】:2016-08-01 10:18:12
【问题描述】:
我正在使用 Javascript 创建一个绝对定位元素。该元素将在各种不同的上下文中使用。所以与它相关的元素可以是它的父元素,也可以是任何其他元素,包括body。
在将元素放入 DOM 之前,我需要设置元素的位置(例如 left 和 top)。有没有办法找出我的新元素将相对于哪个元素定位?我知道哪个元素将是它的直接父元素。但最接近的元素具有 position 样式而不是 static(我的新元素将被定位的元素)可能是不同的元素。
我考虑过遍历 DOM 树并检查每个父元素的 position 样式,但这似乎是一种非常复杂的方法。
那么,有没有更好的方法来找出哪个元素是我的绝对定位元素位置的参考框架?
【问题讨论】:
-
我认为你在正确的轨道上。也许为此目的定义一个遍历函数并且每次都使用这个函数?
-
为什么看起来很复杂?这正是浏览器确定定位的方式。只需编写一个递归函数来检查元素的父级,直到找到没有 position:static 的父级。
标签: javascript dom css-position