0

親Divに対するDivの位置を取得するにはどうすればよいですか?を使用する.position()と、.offset()常にドキュメントに対する位置がわかります。


HTML:

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

CSS:

frameがとで中心になっているmargin: auto;と仮定しましょうwidth: 1024px

inner、、および。left: 300px;_top: 200pxposition: relative;

私が欲しいもの:

innersの位置データ300を取得するための優れた関数です200(たとえばpx、使用時.css('left')などなしで)。

何かある?

4

1 に答える 1

4

親に「相対」の「位置」を与える場合、using.position()は親の内側の位置である必要があります。

.offset実際に使用すると、常にに基づいた位置が得られますがdocument、使用.positionすると、「位置」が「静的」ではない最初の親に基づいた「位置」が得られます(デフォルト)。

次に例を示します。

http://jsfiddle.net/Z2VNx/

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

最初の例<br />では、コンテナの上部にスペースを追加するために使用し、2番目の例padding-topでは、コンテナの上部にスペースを追加するために使用します。0どちらも、子のtop位置よりも大きい値を返します。

唯一の問題はposition、子の位置を計算するときに、子のマージン、パディング、および境界線が考慮されていないことです。これは、これらすべてが要素の一部であるため、視覚的には見えなくても、要素の位置計算には含まれないためです。したがって、もちろん、要素のどの部分にその位置を表示したいかに応じて、それをの結果に追加する必要があります.position。一部の人々は、「位置」を境界線の左上の位置に戻したいと考えています。これは、マージンを追加することを意味します。このようなもの:

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

于 2012-11-02T21:04:41.150 に答える