jQuery.position()左问题

jQuery.position()左问题,jquery,position,Jquery,Position,我正在阅读jQuery.position()文档,示例代码打印position.left=15,而当我在codepen(chrome和firefox上)测试相同的代码时,它打印23。似乎有8px的边距,它在中添加了15px的填充,结果是23px。但正如官方文件所说,此函数“检索元素相对于偏移父元素的当前位置”,那么为什么主浏览器输出23而不是18 示例代码: <!doctype html> <html lang="en"> <head> <meta

我正在阅读jQuery.position()文档,示例代码打印
position.left
=15,而当我在codepen(chrome和firefox上)测试相同的代码时,它打印23。似乎
有8px的边距,它在
中添加了15px的填充,结果是23px。但正如官方文件所说,此函数“检索元素相对于偏移父元素的当前位置”,那么为什么主浏览器输出23而不是18

示例代码:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>position demo</title>
  <style>
  div {
    padding: 15px;
  }
  p {
    margin-left: 10px;
  }
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<div>
  <p>Hello</p>
</div>
<p></p>

<script>
var p = $( "p:first" );
var position = p.position();
$( "p:last" ).text( "left: " + position.left + ", top: " + position.top );
</script>

</body>
</html>

位置演示
div{
填充:15px;
}
p{
左边距:10px;
}
你好

var p=$(“p:第一”); 变量位置=p.位置(); $(“p:last”).text(“左:“+position.left+”,顶部:“+position.top”);
与处理“位置:绝对”项目并尝试定位它们时一样,偏移父项不是直接父项。它在dom中遍历,直到找到不处于默认布局模式的父级。在父元素上使用任何非静态位置都会将其设置为元素的偏移容器

在您的示例中,在非静态模式下没有任何偏移父对象,因此它将主体作为父对象

正如约格什·夏尔马所建议的那样:设置以下内容应该会有所帮助:

div {position:relative;}

你可以尝试一件事,应用相对于父div的位置,然后检查我认为这将有助于你。你可以分享你的HTML和css,这样我就可以尝试investigate@YogeshSharmaposition()不应该已经做了这项业务,正如文档所说,它“检索元素相对于偏移父元素的当前位置”。检查这把小提琴