Подтвердить что ты не робот

JQuery -.position не возвращает смещение относительно родительского

Я использую .position, чтобы найти смещение, где элемент относится к родительскому, однако, похоже, он возвращает значение, которое является смещением от какого-либо родителя до дерева предков.

У меня есть кнопка, и она завернута в div и его единственный элемент этого div. Диверс перемещается вправо. .position возвращает значение, подобное {left:780, top:370}, когда истинное значение должно быть около {left:200, top:0}.

Я использую jquery 1.4

4b9b3361

Ответ 1

Если я прав, я думаю, что это проблема CSS, не обязательно jQuery. Я понимаю, что значение по умолчанию для свойства "позиция" CSS является статическим (не абсолютным, относительным), а позиционирование вычисляется относительно первого предка, который не установлен на статический.

Если элемент не имеет предка с нестатической позицией, элемент будет располагаться относительно блока html.

Если вы хотите поместить div по отношению к обертке div, попробуйте установить для свойства div-элемента оболочки значение, отличное от статического (относительное, абсолютное), в зависимости от ваших потребностей.

Вот простой пример, демонстрирующий это.

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