如何获得任何元素的渲染上边距

时间:2012-07-05 19:21:46

标签: javascript html css margin

我正在寻找一种可靠的方法来确定在浏览器中呈现的任何DOM节点的上边距。这适用于所有浏览器。我怎样才能做到这一点? (有时一个元素在样式表中可能有一个指定的边距,但实际上它可能不会被浏览器呈现,例如,如果它有display:inline;(请参阅Margin top in inline element)。我正在寻找实际渲染的边距。因此,使用getComputedStyle()将不起作用)

2 个答案:

答案 0 :(得分:1)

那么以下方法是否有效?

检查元素是否显示为内联,如果是,则上限为0

如果没有那么获得最高保证金

答案 1 :(得分: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;
}