js获取计算样式

上一篇文章 js控制样式 写了js控制样式的细节,主要是涉及内联样式。

然而,有些时候我们需要的是某个元素最终的样式(计算样式)。这篇来讲一讲js获取计算样式

/**
 * @brief 获取元素的计算样式(最终的样式)
 * @author kenshinlin 2011/11/30
 * @param elem 要计算样式的元素,dom对象或字符串(id号)
 * @pro 要获取的样式属性,这个字符串是骆驼型的,如marginLeft而不是margin-left
 */
function getStyle(elem,pro)  
{  
	elem = ('string'==typeof elem)?document.getElementById('elem'):elem;
	if(!elem) return null;
	if(elem.style[pro])  //内联
		return elem.style[pro];  
	else if(elem.currentStyle)  //IE
	{  
		return elem.currentStyle[pro];    
	} 
	else if(window.getComputedStyle){  //W3C标准
		var s=window.getComputedStyle(elem,null);
		return s[pro];
	}
	else if(document.defaultView&&document.defaultView.getComputedStyle) //FF,CHROME等
	{  
		pro=pro.replace(/([A-Z])/g,"-$1"); //如marginLeft转为margin-Left
		pro=pro.toLowerCase();   //再转为小写margin-left
		var s=document.defaultView.getComputedStyle(elem,"");  
		return s&&s.getPropertyValue(pro);  
	}  
	else return null;
} 


PS:代码部分参考了一位网友,但具体的链接又忘了。

注意:fontFamily可能获取的是类似于“arial,helvetica,sans-serif “的值;如果一个元素不是绝对定位,其计算样式返回auto。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值