cssRuels和rules的区别

对于cssRules和rules的区别:
在计算cssRules和rules的长度的时候,cssRules的单位是是对整条规则,而rules的单位是一个选择器。
下面进行代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .first,.second{
            margin-top: 5px;
            width: 200px;height: 100px;
            background: #ff8436;
        }
        .third{
            margin-top: 5px;
            width: 200px;height: 100px;
            background: #7CF45C;
        }
    </style>

</head>
<body>
<div class="first"></div>
<div class="second"></div>
<div class="third"></div>
<script>
    var cssrules=document.styleSheets[0].cssRules;
    var rules=document.styleSheets[0].rules;
    //测试长度
    alert("cssRules: "+cssrules.length);
    alert("rules: "+rules.length);
    //在IE下的答案是cssRules:2   rules:3
    //直接看答案吧!
    var resultCssrules="resultCssrules: ";
    var resultrules="resultrules: ";
    for(var i=0;i<cssrules.length;i++){
        resultCssrules+=(i+1)+"#"+cssrules[i].selectorText+"\n";
    }
    for(i=0;i<rules.length;i++){
        resultrules+=(i+1)+"#"+rules[i].selectorText+"\n";
    }
    alert(resultCssrules);
    alert(resultrules);
</script>
</body>
</html>

对于cssRules和rules一般我们用的就是cssRules选择器,rules的实现对于各浏览器的有偏差,不唯一,而cssRules是唯一的。指整条规则如:

.first,.second{
 margin-top: 5px;
width: 200px;height: 100px;
background: #ff8436;
}

而rules对于浏览器实现来说,有些是指一个选择器,而有些是指一个规则:
就用上面这个css样式来说:
针对选择器就会被分解为:

.first{
 margin-top: 5px;
width: 200px;height: 100px;
background: #ff8436;
}

.first,.second{//对,你没有看错,这就是IE的实现方式。.first和.first,.second重复了,明显实现得不合理!!
 margin-top: 5px;
width: 200px;height: 100px;
background: #ff8436;
}

所以当要动态添加css样式时就选择用cssRuels而不用rules.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值