我需要获得元素的级联样式值(不是计算的值),或者确定是否计算了实际值。
例如,如果我有一个带有css规则width: 100%
的元素,我想得到值100%
而不是实际的像素值,或者只是想知道实际值是在计算的。< / p>
我知道我可以使用elem.currentStyle
获取它,而且我还在Chrome中找到了一种使用document.defaultView.getMatchedCSSRules()
找到它的方法。
有没有人知道在其他浏览器中获取它的方法?
答案 0 :(得分:1)
如何自己计算价值?查询所需元素的计算宽度和父元素的计算宽度,然后进行一些数学运算得到百分比值?
percentageValue = 100% * widthOfWanted / widthOfContainer
答案 1 :(得分:0)
此时我认为在IE以外的浏览器中没有内置的方法:getComputedStyle
总是只返回这些属性的使用值,就像你说的那样。
答案 2 :(得分:-1)
//此示例中的css参数必须是css样式的字符串,而不是camelCase字符串。
function deepCss(who, css, ps){
var sty, dv= document.defaultView;
// IE8 and below
if(document.body.currentStyle){
sty= css.replace( /\-([a-z])/g, function(a, b){
return b.toUpperCase();
});
return who.currentStyle[sty];
}
// everyone else
if(dv){
dv= document.defaultView.getComputedStyle(who, ps);
return dv.getPropertyValue(css);
}
return '';
}
deepCss(document.body,'background-color')
答案 3 :(得分:-2)
最佳路线是使用与浏览器无关的api库,如jQuery
$(element).css('width') // jquery has a single function that returns a consistent value no matter which browser is in use.