获取css样式,style、getComputedStyle及currentStyle的区别

样式表有三种:

内嵌样式:<div id="box" style="color:red">box</div>,style写在html中的为内嵌样式;

内联样式:

<style>
#box{
    font-size: 25px;
    background-color: #ccc;
}
</style>

在html页中直接写入<style></style>的为内联样式;

外部样式:<link rel="stylesheet" href="css/style.css" />这种为外部样式。

现在来测试一个小例子:

<style>
	#box{
	   font-size: 25px;
	   background-color: #ccc;
	}
</style>
<div id="box" style="color:red">box</div>

js代码:

window.onload=function(){
        var box=document.getElementById('box');
        alert(box.style.color);  //弹出red   element.style[attr]对内嵌样式有效
        alert(box.style.fontSize);   //弹出空   从这里可以看出element.style[attr]只对内联样式无效
        alert(isStyle(box,'color'));   //使用isStyle方法,弹出rgb(255,0,0)
        alert(isStyle(box,'fontSize'));  //使用isStyle方法,弹出25px
}

/*通过元素节点和属性获取属性值*/
function isStyle(ele,attr){
        if(window.getComputedStyle!='undefined'){   //兼容firefox
        	return window.getComputedStyle(ele,null)[attr];
        }else if(ele.currentStyle!='undefined'){    //兼容IE
                return ele.currentStyle[attr];
        }	
}

要想获取内部样式以及外部样式需要通过getComputedStyle和currentStyle来获取,当然也可以获取内嵌样式。

posted @ 2017-04-09 12:09  heyujun-  阅读(647)  评论(0编辑  收藏  举报