[英]Why does the position method not return the expected values?
在这种情况下,为什么position
方法不返回[left: 100, top: 10]
:
<!DOCTYPE HTML>
<html>
<head>
<style>
#parent1 {
width: 300px;
height: 200px;
border: solid 9px pink;
}
#child1 {
position: relative;
left: 100px;
top: 10px;
width: 100px;
height: 100px;
border: solid 5px green;
}
</style>
<script src="http://jquery-local/jquery.all.js"></script>
<script type="text/javascript">
(function ($) {
$(document).ready(function () {
console.log($('#child1').position());
});
})(jQuery);
</script>
</head>
<body>
<div id="parent1">
<div id="child1"></div>
</div>
</body>
</html>
是通过css
方法获得 position 的唯一方法吗?
您的 jquery 源位置错误。
尝试将 jquery src 更改为http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
或到最新版本http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
为我工作 - 在这个 JSFiddle中,我得到
left: 119
top: 19
它占顶部的 10px 值加上周围元素的 9px 边框。
但是, position()
可能不是您想要的 - 它检索 position相对于偏移父级。 在这种情况下,它没有区别,因为没有偏移父级,但是如果您想要文档中的 position,请改用.offset()
。
对我来说,它返回:[117, 27]。
首先,因为子节点的 position 是相对于父节点的,所以子节点的坐标仅与父节点的坐标相对。 这意味着父级的任何定位,例如默认的正文边距,都会添加到子级的定位中。 此外,还添加了父级的边框,另外 9 像素。 如果设置body的margin为0,则孩子的position为[109, 19]:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.