选择器权重、样式冲突(选择器优先级)

目录

一、知识解释

1、为什么会有优先级

2、选择器优先级(列出表格和解释)

3、多选择器、复合选择器优先级计算

二、代码实例


一、知识解释

1、为什么会有优先级

当多个选择器同时对某一个特定属性进行设置,究竟哪一个会显现出来,由优先级规定

2、选择器优先级(列出表格和解释)

(1)!important必须紧跟在属性后,用空格分开,尽量少使用

*{
    color: blue !important;
}

(2)1,0,0,0表示优先级顺序,越靠前优先级越大,可以简单理解为1000,100,10,1,适用于优先级计算

(3)适配选择器就是全选择器,用*表示

(4)特殊情况,当优先级相同时,则优先使用最新样式(代码越靠后,则优先级越高)

(4)以下为常规优先级顺序表

选择器优先级
选择器优先级
!important最高优先级,慎用
内联样式1,0,0,0(1000)
id选择器0,1,0,0(100)
类\伪类选择器0,0,1,0(10)
元素选择器0,0,0,1(1)
适配选择器(全选择)最低优先级
继承选择器无优先级

3、多选择器、复合选择器优先级计算

(1)计算规则

交集选择器,相加,但同类型选择器不会超过本类型上限

并集选择器(分组选择器),单独计算

(2)例子

假设,我们对该p元素的class设定11个(以下例子方便具象化理解,非本例)

<p id="p" class="p1 p2 p3">我是一个p元素</p>

 错误理解:我们同时对id和class进行设置,按照交集相加原则,11个class相加,结果为1100,按道理已经超过id的1000。

#p{
    color:red;
}
.p1.p2.p3{
    color: blueviolet;
}

正确理解:但是,同类型不会超过上限,也就是id的1000,所以还是id选择器优先

二、代码实例

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>选择器权重(选择器优先级)</title>
        <style>
            .p1{
                color: red;
            }
            #p{
                color: yellow;
            }
            p{
                color: green;
            }
            *{
                color: blue /*!important*/;
            }
            .p1.p2.p3{
                color: blueviolet;
            }
            /* 
            优先级:
            1、内联样式         1,0,0,0
            2、id选择器         0,1,0,0
            3、类\伪类选择器     0,0,1,0
            4、元素选择器        0,0,0,1
            5、适配选择器(全选择)   最低优先级
            6、继承选择器          无优先级
            7、!important       最高优先级,类似于编程语言的全局变量,慎用

            优先级计算
            1、交集选择器,相加,但同类型选择器不会超过本类型上限
            2、并集选择器(分组选择器),单独计算
            */
        </style>
    </head>
    <body>
        <p id="p" class="p1 p2 p3">我是一个p元素</p>
        <div id="div" class="div1 div2">我是一个div元素</div>
    </body>

</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值