在做自動换肤设置时,无意中看到了js修改css的方法,感觉挺有用的,特来学习分享一下。好了,下面开始学习:
js的 document.styleSheets 获取到的是引入的css的对象数组。如:
![](https://i-blog.csdnimg.cn/blog_migrate/63b0255cfddd8750bcd77e700b6355e7.png)
其中 CSSStyleSheet展开如下:
document.styleSheets[0] 即可得到你所应用的第一个css rules 和 cssRules 的计数方法是不一样的!rules 是第几个选择器;cssRules 是第几条规则 document.styleSheets[0].cssRules即可得到所有css文件行 document.styleSheets[0].cssRules[0] css第一条 document.styleSheets[0].cssRules[0].style.background="red"//修改第一条的背景颜色为红色
实例:
修改标题1的字体颜色为红色
引入的css:
.wode{
color: #000;
font-size: 36px;
}
.article{
color: #333;
}
h1,h2,h3{
color: #0D9BF2;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="article">
<h1>标题一</h1>
<div class="content">内容</div>
<h2>标题二</h2>
<div class="content">内容</div>
<h3>标题三</h3>
<div class="content">内容</div>
</div>
<script>
var cssRule=document.styleSheets[0].cssRules;
console.log(cssRule);
console.log(cssRule.length);
for(var i=0;i<cssRule.length;i++){
if(cssRule[i].selectorText.indexOf("h1") != -1){
cssRule[i].style.color="red";
}
}
</script>
</body>
</html>
修改前:
![](https://i-blog.csdnimg.cn/blog_migrate/0e6266f98b7a0d3059bc619334deac4a.png)
修改后: