页面中用了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>