JS 控制 CSS 样式表

JS控制CSS样式首先得确定一点CSSHTML页面的链接方式因为CSS3种与HTML页面结合的方式不同的方式也会产生不同的结果JS控制CSS样式的时候务必得注意这点。

下面先记录一下JS控制CSS所使用的方法


1. 通过styleSheet对象数组对CSS进行操作

原始CSS

<style type="text/css"> .orig { display: none; } </style> 

你想要改变把他的display属性由none改为inline 

IE 

document.styleSheets[0].rules[0].style.display = "inline";

 Firefox:

document.styleSheets[0].cssRules[0].style.display = "inline"; 


可以做一个函数来搜索特定名字的style对象:

function getstyle(sname) {
	for (var i = 0; i < document.styleSheets.length; i++) {
		var rules;
		if (document.styleSheets[i].cssRules) {
			rules = document.styleSheets[i].cssRules;
		}
		else {
			rules = document.styleSheets[i].rules;
		}
		for (var j = 0; j < rules.length; j++) {
			if (rules[j].selectorText == sname) {
				//selectorText 属性的作用是对一个选择的地址进行替换.意思应该是获取RULES[J]的CLASSNAME.有说错的地方欢迎指正 
				return rules[j].style;
			}
		}
	}
}

然后只要: 

getstyle(".orig").display = "inline"; 
------------------ 注意 ------------------

document.styleSheets[0].rules[0].style 

这个 styleSheets[0] 数组的下标是代表本页的第NCSS样式表它的下级 rules[0 ]的数组下标表示的则是这个样式表中的第N个样式例如

<style type="text/css"> 
	.s{display="none";} 
	.w{display="none";} 
    </style>

修改S则: document.styleSheets[0].rules[0].style.display='inline'; 
修改W则:document.styleSheets[0].rules[1].style.display = 'inline'; 
注意:CSSHTML结合的方式必须为<LINK rel="stylesheet" type="text/css" href="" /> <style></style>的时候以上方法可行 @IMPORT 则不行








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值