offsetTop和静态或绝对定位

时间:2011-12-04 10:12:37

标签: css

在HTML中我有一个相对定位的div。它的边框为6px。它没有填充物。在它是另一个div。这个div没有余量。

我在Firefox中查看它。

我做了一个小提琴,jsfiddle.net/ericjvandervelden/uKgYs/10

如果内部div是静态的,我知道offsetTop=0。 但如果内部div是绝对定位的,则它具有offsetTop= -6px。我不明白这一点。

1 个答案:

答案 0 :(得分:1)

似乎fireSetTop的Firefox实现可能会出现绝对定位错误。

我改进了your jsfiddle

我已经测试了firefox,chrome和IE8中的位置和偏移的函数和jquery实现,没有结果是一样的......

Absolute
        |  offSetTop   |  jquery.offSet.top | jquery.position.top
Firefox |  -6          |  30                | 0
Chrome  |  0           |  26                | 0
IE8     |  5           |  25                | -1

Static
        |  offSetTop   |  jquery.offSet.top | jquery.position.top
Firefox |  0           |  384                | 0
Chrome  |  0           |  376                | 0
IE8     |  5           |  371                | -1

如果您使用绝对位置,我的建议是使用jquery.position而不是原生的offSetTop。

虽然,IE仍然行为奇怪。至少,无论职位类型如何,它都会有奇怪的行为。

我相信这个bug report可能会引起人们的兴趣。