JS如何访问修改css样式表

JS访问修改样式表,可方便的动态修改页面:
一、访问内联style属性的css样式

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JS内部类</title>
    <script type="text/javascript">
        //修改内部style属性
        function test4(eventObj) {
            //window.alert(eventObj.value);//可以输出button的value
            if (eventObj.value=="黑色") {
                //获取div1
                var div1=document.getElementById('div1');
                div1.style.background="black";
                div1.style.color="white";
            }else if(eventObj.value=="红色") {
                //获取div1
                var div1=document.getElementById('div1');
                div1.style.background="red";
                div1.style.color="black";
            }
        }
    </script>
    <link rel="stylesheet" type="text/css" href="css/jsdemo6.css">
</head>

<body>
    !-- 如何通过js修改style来修改style -->
    <div id="div1" style="width: 400px;height: 300px;background: red;">div1</div>
    <input type="button" name="" value="黑色" onclick="test4(this)">
    input type="button" name="" value="红色" onclick="test4(this)">
</body>
</html>

效果图:

JS控制css样式


二、访问外部定义的CSS样式(类自定义的CSS样式)

  因为CSS数据不会存储在style属性中,而是存储在类中的,所以**无法**使用上面的方法访问。

访问方法:先去的定义类的样式表的引用,用document.styleSheets集合实现这个目的。这个集合包含HTML页面中所有的样式表。DOM为每个样式表定义一个cssRules的集合,这个集合中包含定义在样式表中的所用css规则(PS:Mozilla和Safari总是cssRules,而IE中是rules)。
jsdemo6.css:

.div2{
    width: 600px;
    height: 400px;
    background: black;
}

jsdemo6.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JS内部类</title>
    <script type="text/javascript">
        //此法有兼容性问题,ie用rules可以访问,ff用cssRules才能访问。chrome报错
        function test5(eventObj){
            //获取jsdemo6.css中的所有class选择器都获取
            var ocssRules=document.styleSheets[0].rules||document.styleSheets[0].cssRules;
            //从ocssRules中取出你希望的class
            var div2=ocssRules[0];//表示css文件的第一个规则
            if (eventObj.value=="黑色") {
                div2.style.background="black";
            }else if (eventObj.value=="红色") {
                div2.style.background="red";
            }

        }
    </script>
    <link rel="stylesheet" type="text/css" href="css/jsdemo6.css">
</head>
<body>
<!-- 引用外部style文件 -->
<div id="div2" class="div2">div2</div>
<input type="button" name="" value="黑色" onclick="test5(this)">
<input type="button" name="" value="红色" onclick="test5(this)">

</body>
</html>

效果图:
访问外部定义的css文件

尚未解决的问题:chrome 的访问。
chrome报错信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值