Div在另一个Div中的相对位置

时间:2012-11-02 21:01:23

标签: javascript jquery html position

如何获得Div相对于其父Div的位置?使用.position().offset()始终会让我对文档有所了解。


HTML:

<div id="frame">
   <div id="inner"></div>
</div>

CSS:

我们假设framemargin: auto;width: 1024px为中心。

innerleft: 300px;top: 200pxposition: relative;

我想要的是什么:

使用inners等时获取300位置数据200px(例如,没有.css('left')的好功能。

有什么事吗?

1 个答案:

答案 0 :(得分:4)

如果您给父母一个“相对”的“位置”,那么使用.position()应该是其在父母内部的位置。

使用.offset实际应总是根据document为您提供位置,而使用.position会根据其第一个父级给您“位置”其“位置”不是“静态”(默认)。

以下是示例:

http://jsfiddle.net/Z2VNx/

http://jsfiddle.net/Z2VNx/1/

第一个示例使用<br />在容器顶部添加空间,而第二个示例使用padding-top在容器顶部添加空间。对于孩子的0职位,两者都返回大于top的值。

唯一的问题是position在计算其位置时没有考虑孩子的边距,填充和边框。这是因为所有这些都是元素的一部分,因此即使您可能无法直观地看到它们,它们也不会包含在元素的位置计算中。当然,根据您想要查看其位置的元素的确切位置,您需要将其添加到.position的结果中。有些人希望“位置”返回到边界的左上角位置,这意味着增加边距。像这样:

http://jsfiddle.net/Z2VNx/2/