页面中用了style特性的元素CSS样式,并没有通过直接写在对象里面的style定义,这样的CSS怎么通过javascript的dom访问呢。也就是说怎么通过javascript Dom来访问CSS类中的属性。
首先,获得定义样式表CSS的引用。使用的是document.styleSheets集合实现的。Dom指定样式表对象有以下特性
1.disabled-表示样式表是否被禁用
2.href-用于外部引用文件样式表的url,对于style元素的话,该值应该是null,不过在Mozilla返回的是当前页面的url值
3.media-可以使用该样式表的媒体类型,由html的media特性指定,IE在实现这个属性上有错误,返回的是与media特性包含相同内容的字符串。、
4.ownerNode-指定样式的DOm节点。IE不支持该属性
5.parentStyleSheet-如果样式表是通过CSS的@import语句来加载的,哪么这个特性将指出,出现@import语句的样式表。
6.title-通过HTML title特性非配给样式表的标题,可以用在<link/><style/>上。
7.type-样式的mime类型,对于CSS通常是text/css.
应为浏览器不同,访问样式表中单独的规则也是有技巧的.dom为每一个样式表指定了一个cssRules的集合,它包含所有的定义在样式表中的CSS的规则。火狐Mozilla和苹果的Safari正确的实现了该标准,不过IE是通过rules.因此要检查一下,该使用那个。
举例:
var obj_css = document.styleSheets[0].cssRules ||document.styleSHeets[0].rules;
页面举例:
<html>
<head>
<title>网站制作学习网-http://www.forasp.cn</title>
<style type="text/css">
.foraspcn {background-color:red;height:28px;width:200px;margin:1px;}
</style>
<script language="javascript">
function show_bgcolor()
{
var obj_css = document.styleSheets[0].cssRules ||document.styleSheets[0].rules;//返回的是一个集合对象
alert(obj_css[0].style.backgroundColor);//输出red
}
</script>
</head>
<body>
<div class="foraspcn"><a href="javascript:void(0);" onclick="show_bgcolor();">点击查看颜色属性</a></div>
</body>
</html>
更多信息请查看IT技术专栏