JQuery - .position不返回相对于父级的偏移量

时间:2010-05-16 02:47:04

标签: jquery css

我正在使用.position来查找元素相对于父元素的偏移量,但它似乎返回的值是祖先树上某个父元素的偏移量。

我有一个按钮,它包含一个div,它是该div的唯一元素。 div正好浮动。当{true}应该在.position附近时,{left:780, top:370}会返回{left:200, top:0}之类的值。

我正在使用jquery 1.4

1 个答案:

答案 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>