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

Kyl*_*yle 11 css jquery

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

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

我正在使用jquery 1.4

mar*_*rkt 19

如果我是正确的,我认为这是一个CSS问题,不一定是jQuery问题.我的理解是CSS"position"属性的默认值是静态的(不是绝对的,相对的),并且相对于第一个未设置为静态的祖先.

如果元素没有具有非静态位置的祖先,则该元素将相对于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>
Run Code Online (Sandbox Code Playgroud)