2012-11-09 19 views
5

我正在寻找最简单和跨浏览器的方式来将HTML元素CSS边距值转换为绝对像素。比如说保证金是“自动”的。 我不能使用任何js框架。如何将CSS边缘值转换为只有普通的JavaScript像素?

+0

所以,你想使用从'margin:auto'到一个特定的像素值? –

+0

这只是一个特例,但是。我想将任何保证金转换为特定的像素值 – gztomas

回答

2

您想使用的window.getComputedStyle方法:

var style = window.getComputedStyle(element, null); 
// style.marginLeft 

这里的工作演示:http://jsfiddle.net/VxccZ/

更新

对于IE 8及以上(不支持此方法)使用你的元素的currentStyle属性:

var style = element.currentStyle; 
// style.marginLeft 

总结:

var getMarginLeft = function (element) { 
    var style; 
    if (window.getComputedStyle) { style = window.getComputedStyle(element, null); } 
    else { style = element.currentStyle; } 

    return style.marginLeft; 
}; 

我不是100%肯定currentStyle特点为margin: auto数值。你将不得不自己尝试。我无法在Mac上自己做这件事。

+0

好戏,我从来没有见过它。这真的是交叉浏览器吗? – Martin

+0

仅限IE9 +。你可以在早期版本的IE中使用'element.currentStyle'。让我更新答案。 –

+0

他正在寻找转换价值不只是检索它。 –