我使用.position
来查找元素相对于父元素的偏移量,但是它返回的值似乎是从祖先树向上的某个父元素的偏移量。
我有一个按钮,它被一个div包住了,它是div中唯一的元素。div向右浮动。当真值应该在{left:200, top:0}
附近时,.position
会返回一个类似于{left:780, top:370}
的值。
我使用的是jquery 1.4
发布于 2010-05-16 02:57:56
如果我是正确的,我认为这是一个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>
https://stackoverflow.com/questions/2842432
复制相似问题