CSS权值覆盖规则

当多条CSS样式作用于同一元素时,决定生效样式的过程包括:区分正常声明和重要声明,重要声明按权值排序,无重要声明则正常声明排序;权值相同则按来源顺序;权重排序为:读者样式>设计样式>设计正常样式>读者正常样式>浏览器默认样式。通配选择器权值大于继承,测试显示通配选择器的样式会覆盖继承的样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有多条样式声明作用于同一元素,那么则会按照下面的步骤决定哪条样式会生效:

  1. 会把应用于同一个元素的所有样式声明拿出来;
  2. 把这些样式分为正常声明和重要声明(声明里面含有!important)两种;
  3. 如果有重要声明的话,对重要声明按照权值进行排序,权值大的排下面,正常声明就不用理了,直接跳到第五步;
  4. 如果没有重要声明的话,就对正常声明按照权值排序,权值大的排下面;
  5. 权值相同的按照 内联>嵌入>外部 进行排序;
  6. 顺序执行排序好的声明,后执行的会对先执行的覆盖。
选择器权值
内联样式1000
选择器中的id属性值100
选择器中的类属性值、属性选择、伪类10
选择器中的元素、伪元素1
通配选择器*0
继承

样式一共有三个来源:创作人员设计的样式、浏览器的默认样式、读者设置的样式
三者的权重排序为:读者设置的!important样式 > 创作人员设计的!important样式 > 创作人员设计的正常样式 > 读者设置的正常样式 > 浏览器的默认样式。

通配选择器*的权值为0和继承没有权值相比,通配选择器*的权值更大,我们可以测试一下:

    <style type="text/css">
        *{
            color:blue;
        }
        div{
            color:red;
        }
    </style>

<body>
    <div>
        <h1>hello world</h1>
        hello world
    </div>
</body>

测试结果为:
在这里插入图片描述
h1会从父元素div那里继承color: red,以及通配选择器*color: blue,结果却是blue生效,可以看出通配选择器*的权值更大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值