我正在尋找最簡單的和跨瀏覽器的方式來轉換html元素css邊距值為絕對像素。比方說,邊距是“自動”。 我不會用任何js框架。
您希望使用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上做不到。
使用parseInt()函數轉換字符串,如& quot125px & quot轉換成125這樣的數字(后面的非數字字符將被忽略) JavaScript / TypeScript示例:
var elem = document.getElementById("someElementId");
var marginTopNumericValue = parseInt(elem.style.marginTop);
document.getElementById("someElementId2") = marginTopNumericValue + "px";
重新分配時,確保定義您所在的單位!