我正在使用.position
来查找元素相对于父元素的偏移量,但它似乎返回的值是祖先树上某个父元素的偏移量。
我有一个按钮,它包含一个div,它是该div的唯一元素。 div正好浮动。当{true}应该在.position
附近时,{left:780, top:370}
会返回{left:200, top:0}
之类的值。
我正在使用jquery 1.4
答案 0 :(得分:19)
如果我是正确的,我认为这是一个CSS问题,不一定是jQuery问题。 我的理解是CSS“position”属性的默认值是静态的(不是绝对的,相对的),并且相对于未设置为static的第一个祖先计算定位。
如果元素没有具有非静态位置的祖先,则该元素将相对于html块定位。
如果要将div相对于包装器div放置,请尝试将包装器div的position属性设置为静态(相对,绝对)以外的值,具体取决于您的需要。
这是一个演示此内容的简单示例..
<html>
<style type="text/css">
.divOuter { border:1px solid Green; width:350px; height:50px; padding:2px; margin-left:80px; }
.divInner{border:1px solid Blue; width:200px; height:50px; padding:2px; position:absolute; left:100px;}
</style>
<body>
<div class="divOuter">
<div class="divInner">
positioned relative to html block
</div>
</div>
<div class="divOuter" style="position:relative;">
<div class="divInner">
positioned relative to parent div
</div>
</div>
</body>
</html>