CSS层叠性和选择器权重计算

1.层叠性

        CSS全名叫做“层叠式样式表”,层叠性是它很重要的性质。

        层叠性:多个选择器可以同时作用于同一个标签,效果叠加。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>First HTML Web</title>
    <style>
        p {
            color: red;
            width: 300px;
        }

        .spec {
            background-color: sandybrown;
        }

        #para {
            font-style: italic;
        }
    </style>
</head>

<body>
    <!-- 层叠性 -->
    <!-- 层叠性:多个选择器可以同时作用于同一个标签,效果叠加 -->
    <p class="spec" id="para">
        你好
    </p>
</body>

</html>

 

         层叠性的冲突处理 

              CSS有严密的处理冲突的规则,id权重>class权重>标签权重。 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>First HTML Web</title>
    <style>
        p {
            color: red;
        }

        #para {
            color: greenyellow;
        }

        .spec {
            color: sandybrown;
        }
    </style>
</head>

<body>
    <!-- 层叠性 -->
    <!-- CSS有严密的处理冲突的规则,id权重>class权重>标签权重 -->
    <p class="spec" id="para">
        你好
    </p>
</body>

</html>

 

2.复杂选择器权重计算

        复杂选择器可以通过(id的个数, class的个数, 标签的个数)的形式,计算权重,首先比较id的个数大的生效,以此类推,若最后权重一样,则比较样式书写的前后顺序,靠后的生效。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>First HTML Web</title>
    <style>
        /* 权重计算 */
        /* (2,1,2) */
        #para1 div#para2 .spec3 p {
            color: greenyellow;
        }

        /* (1,2,2) */
        div.spec1 .spec2 #para3 p {
            color: red;
        }

        /* (2,0,1) */
        #para1 #para3 p {
            color: yellow;
        }
    </style>
</head>

<body>
    <!-- 复杂选择器权重计算 -->
    <div id="para1" class="spec1">
        <div id="para2" class="spec2">
            <div id="para3" class="spec3">
                <p>你好!</p>
            </div>
        </div>
    </div>
</body>

</html>

        !important提升权重

        如果我们需要将某个选择器的某条属性提升权重,可以在属性后面写!important。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>First HTML Web</title>
    <style>
        /* 权重计算 */
        /* (2,1,2) */
        #para1 div#para2 .spec3 p {
            color: greenyellow;
        }

        /* (1,2,2) */
        div.spec1 .spec2 #para3 p {
            color: red !important;
        }

        /* (2,0,1) */
        #para1 #para3 p {
            color: yellow;
        }
    </style>
</head>

<body>
    <!-- 复杂选择器权重计算 -->
    <!-- !important提升权重 -->
    <div id="para1" class="spec1">
        <div id="para2" class="spec2">
            <div id="para3" class="spec3">
                <p>你好!</p>
            </div>
        </div>
    </div>
</body>

</html>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值