2011-12-04 11 views
2

HTMLには相対的な位置にあるdivがあります。 6pxの境界を持っています。パディングはありません。それは別の部門です。このdivにはマージンがありません。offsetTopと静的または絶対的な位置付け

Firefoxで見ています。

私はフィドルを作った、jsfiddle.net/ericjvandervelden/uKgYs/10

内側のdivが静的な場合は、offsetTop=0です。 しかし、内側のdivが絶対配置の場合は、offsetTop= -6pxです。ぜんぜんわかりません。

+0

http://jsfiddle.net/ – srcspider

+0

さらにいくつかのHTMLと関連するCSSが役に立ちます。マークアップの問題、CSSの問題、またはその2つの組み合わせが原因かどうかは分かりません。 – dash

+0

こんにちは、私はフィドルを作った、http://jsfiddle.net/ericjvandervelden/uKgYs/10/。したがって.inが静的であれば、offsetTopは0になり、.inが絶対配置の場合、offsetTopは.outのボーダーの幅である-6pxに等しくなります。ありがとう。 – ericj

答えて

1

FirefoxがoffSetTopを実装していると、絶対的な位置付けでバグが発生する可能性があります。

改善しましたyour jsfiddle

私は位置の関数とjQueryの実装をテストし、Firefoxの、クロムおよびIE8にオフセットしても、何も結果は同じではないました...

 
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 

私recommandationはjquery.positionを使用することです絶対位置を使用する場合は、ネイティブのoffSetTopではなく、

IEはまだ変わっていますが。少なくとも、それはポジションのタイプにかかわらず奇妙に動作します。

これはbug reportと思われます。

関連する問題