是否可以使用JavaScript获取对象的所有样式?类似的东西:
main.css
-------
#myLayer {
position: absolute;
width: 200px;
height: 100px;
color: #0000ff;
}
main.js
-------
var ob = document.getElementById("myLayer");
var pos = ob.(getPosition);
// Pos should equal "absolute" but
// ob.style.position would equal null
// any way to get absolute?
答案 0 :(得分:16)
您正在谈论所谓的 Computed Style ,请查看这些文章,了解如何获取它:
从上一篇文章开始,这是一个函数:
function getStyle(oElm, strCssRule){
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle){
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
}
else if(oElm.currentStyle){
strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
return p1.toUpperCase();
});
strValue = oElm.currentStyle[strCssRule];
}
return strValue;
}
如何使用
CSS:
/* Element CSS*/
div#container{
font: 2em/2.25em Verdana, Geneva, Arial, Helvetica, sans-serif;
}
JS:
var elementFontSize = getStyle(document.getElementById("container"), "font-size");
答案 1 :(得分:2)
Polyfill使用javascript获取当前CSS样式的元素...访问link了解更多信息
/**
* @desc : polyfill for getting the current CSS style of the element
* @param : elem - The Element for which to get the computed style.
* @param : prop - The Property for which to get the value
* @returns : The returned style value of the element
**/
var getCurrentStyle = function (ele, prop) {
var currStyle;
if (!window.getComputedStyle) {
currStyle = ele.currentStyle[prop];
} else {
currStyle = window.getComputedStyle(ele).getPropertyValue(prop);
}
return currStyle;
}
/** How to use **/
var element = document.getElementById("myElement");
getCurrentStyle(element, "width"); // returns the width value
答案 2 :(得分:1)
您可以使用:
var ob = document.getElementById("myLayer");
var pos = ob.style.position;
每个CSS属性都有自己的对象模型。通常那些包含' - '的css属性是使用java模型编写的。
例如:
//getting background-color property
var ob = document.getElementById("myLayer");
var color = ob.style.backgroundColor;
如果要获取为对象定义的所有css属性,则必须逐个列出它们,因为即使您没有在样式表中设置属性,对象也会使用默认值。