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