日期:2014-05-17  浏览次数:20675 次

正确得到网页元素的CSS属性值
文章来自: CSS中国(http://www.csschina.net) 详文参考:http://www.csschina.net/a/sl/css_601.html


实现用得到元素的属性值,是处理DOM 元素的CSS属性时,经常会遇到一个问题,本来页面上已经定义了CSS 属性值,但在获取的时候却为空,原因是因为任何样式表文件或内联CSS预设的样式信息并不能可靠地反映到style属性上,下面我们介绍一种能正确得到指定元素的CSS 属性值的方法。 

 
function getStyle( elem, name )  
{  
    //如果该属性存在于style[]中,则它最近被设置过(且就是当前的)  
    if (elem.style[name])  
    {  
        return elem.style[name];  
    }  
    //否则,尝试IE的方式  
    else if (elem.currentStyle)  
    {  
        return elem.currentStyle[name];  
    }  
    //或者W3C的方法,如果存在的话  
    else if (document.defaultView && document.defaultView.getComputedStyle)  
    {  
        //它使用传统的"text-Align"风格的规则书写方式,而不是"textAlign"  
        name = name.replace(/([A-Z])/g,"-$1");  
        name = name.toLowerCase();  
        //获取style对象并得到属性的值(如果存在的话)  
        var s = document.defaultView.getComputedStyle(elem,"");  
        return s && s.getPropertyValue(name);  
    //否则,就是在使用其它的浏览器  
    }  
    else  
    {  
        return null;  
    }  
}