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