1

有没有办法编写一个javascript函数,给定任何HTML元素告诉我它的'margin-left'以像素为单位。(我想无论算法是什么,它都可以重新应用以获得margin-right,top和bottom)

一种解决方案是:

function(htmlElement) {
    return htmlElement.style.marginLeft;
}

但这仅在将 marginLeft 应用于该 html 元素时才有效。

如果没有明确设置,我该如何计算它?如果它没有以像素为单位明确设置?

4

1 回答 1

4

您可以使用window.getComputedStyle().

jsFiddle

window.getComputedStyle(elem, null).getPropertyValue("margin-left");

所以elem.style.marginLeft获取应用的 CSS 值,在应用getComputedStyle所有内容后获取实际计算值。

getComputedStyle在 IE8 中不起作用,但是有一堆 polyfills 可用:

于 2013-04-04T20:11:16.527 回答