如何使用纯javascript将css边距值转换为像素?

如何使用纯javascript将css边距值转换为像素?,javascript,html,css,Javascript,Html,Css,我正在寻找一种最简单的跨浏览器方式,将html元素css边距值转换为绝对像素。例如,假设边距为“自动”。 我不能使用任何js框架。您想使用窗口。getComputedStyle方法: var style = window.getComputedStyle(element, null); // style.marginLeft 这是一个有效的演示: 更新 对于IE 8及更早版本(不支持此方法),请使用元素的currentStyle属性: var style = element.currentSt

我正在寻找一种最简单的跨浏览器方式,将html元素css边距值转换为绝对像素。例如,假设边距为“自动”。
我不能使用任何js框架。

您想使用
窗口。getComputedStyle
方法:

var style = window.getComputedStyle(element, null);
// style.marginLeft
这是一个有效的演示:

更新

对于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电脑上做不到。

Uise
parseInt()
函数。

纯JavaScript/typescript:

var elem = document.getElementById("someElement");
var marginTopNumericValue = parseInt(elem.style.marginTop);

那么,您想使用从
margin:auto
到特定像素值的更改吗?这只是一种特殊情况,但是的。我想把任何边距转换成一个特定的像素值很好的技巧,我在任何地方都没见过。这真的是交叉浏览器吗?仅限IE9+版本。您可以在旧版本的IE中使用
element.currentStyle
。让我更新答案。他希望转换值,而不仅仅是检索它。我希望检索转换为px的值。我真的不想改变元素。对不起,这个模棱两可的问题。Ian的回答很好,不幸的是currentStyle的行为与getComputedStyle不同。例如,在这种情况下,currentStyle返回“auto”。@CalebDoucet:getComputedStyle返回一个数值,即使是
margin:auto
——即它进行转换。不幸的是,旧版本的IE没有实现这种方法。