3

ブラウザーでレンダリングされる DOM ノードの上マージンを決定する堅牢な方法を探しています。これはすべてのブラウザで機能するはずです。これどうやってするの?(要素がスタイルシートで指定されたマージンを持つ場合がありますが、たとえば、 (インライン要素のマージントップをdisplay:inline;参照) がある場合、ブラウザーによって実際にレンダリングされない場合があります。実際にレンダリングされたマージンを探しています。したがって、 、使用は機能しません)getComputedStyle()

4

2 に答える 2

1

わかりましたので、次のアプローチは機能しますか?

要素がインラインで表示されているかどうかを確認します。その場合、マージンの上部は 0 です

そうでない場合は、上部マージンを取得します

于 2012-07-05T20:09:55.747 に答える
0

JQueryでこれを行う方法があるかもしれません。それがあなたが望むものではない場合、私が求めているものをあなたは手に入れたと思います。何かを見つけるのに役立つかもしれません.

function getRenderedTopMargin(id){
   var prevElementWidth;
   var elementOffset = $('#'+id).offset();
   var prevElementOffset = $('#'+id).prev().offset();
   if ($('#'+id).css("display") == 'inline' || $('#'+id).prev().css("display") == 'inline'){
       prevElementWidth = 0;
   }else{
       prevElementWidth = $('#'+id).prev().width();
   }
   return elementOffset.top - prevElementOffset.top - prevElementWidth;
}
于 2012-07-05T20:09:59.987 に答える