我正在寻找一种可靠的方法来确定在浏览器中呈现的任何 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 回答