如何获得Div相对于其父Div的位置?使用.position()
和.offset()
始终会让我对文档有所了解。
HTML:
<div id="frame">
<div id="inner"></div>
</div>
CSS:
我们假设frame
以margin: auto;
和width: 1024px
为中心。
inner
有left: 300px;
,top: 200px
和position: relative;
。
我想要的是什么:
使用inners
等时获取300
位置数据200
和px
(例如,没有.css('left')
的好功能。
有什么事吗?
答案 0 :(得分:4)
如果您给父母一个“相对”的“位置”,那么使用.position()
应该是其在父母内部的位置。
使用.offset
实际应总是根据document
为您提供位置,而使用.position
会根据其第一个父级给您“位置”其“位置”不是“静态”(默认)。
以下是示例:
第一个示例使用<br />
在容器顶部添加空间,而第二个示例使用padding-top
在容器顶部添加空间。对于孩子的0
职位,两者都返回大于top
的值。
唯一的问题是position
在计算其位置时没有考虑孩子的边距,填充和边框。这是因为所有这些都是元素的一部分,因此即使您可能无法直观地看到它们,它们也不会包含在元素的位置计算中。当然,根据您想要查看其位置的元素的确切位置,您需要将其添加到.position
的结果中。有些人希望“位置”返回到边界的左上角位置,这意味着增加边距。像这样: