最后样式获取中 IE与W3C DOM有区别

原创
2013/01/25 10:49
阅读数 67

        对于获取元素的实际的CSS层叠最后的样式,IE与W3C DOM存在分歧:IE给对象提供了一个currentStyle属性,它的使用方式很像元素的style属性,但它返回的值是元素的实际样式,而不管样式是内联的还是在外部样式表中定义的! W3C DOM则使用一个全局方法getComputedStyle,它的第一个参数为要检测的对象,第二个参数为null(在未来实现),将返回一个与元素的style也很相似的对象,但一是返回的对象是元素实际样式规则,二是它对于数值型属性总是返回像素值。


alert(oDiv.currentStyle.width);//IE,currentStyle保留原来定义在CSS中的单位
	alert(window.getComputedStyle(oDiv,null).width);//W3C DOM,并且总是返回计算后的像素值
	//另外,两种方式都不能获取那些CSS简写方式定义的,下面两个都会输出空
	alert(oDiv.currentStyle.background);
	alert(getComputedStyle(oDiv,null).border);
Cross-Browser 获取元素实际样式的方式

function getStyle(obj,cn) {
		if (window.getComputedStyle) {//W3C DOM
			return window.getComputedStyle(obj,null)[cn];
		} else if (obj.currentStyle) {//IE
			return obj.currentStyle[cn];
		}
		return "";
	}

展开阅读全文
打赏
2
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
2
分享
返回顶部
顶部