css选择器权重及其计算规则

css选择器



选择器类型

  • ID  #id

  • class  .class

  • 标签  p

  • 通用  *

  • 属性  [type=“text”]

  • 伪类  :hover

  • 伪元素  ::first-line

  • 子选择器、相邻选择器

css选择器权重值

选择器权重
!important权重
!importantInfinity(无限大)
行列样式1000
Id选择器0100
Class选择器/属性/伪类0010
标签选择器0001
*通配符选择器0000 (大于默认样式与继承验样式)
继承样式权重最小(比*通配符还小)

注意:选择器的权重值不是一个确定的值,例如标签选择器的权重值为1,但是这个1是一个256进制数,就是0到255后+1才是1。就是说权重值2和1中间差了255。这表示256个权重值为1的选择器加一起才抵得上一个权重为2的,这在后面权重计算有用。
还有需要注意的是,!important的权重值虽然是正无穷,但其实也是可也计算的,比如正无穷+1或者*1,就是要比正无穷大,在计算机中正无穷的值,都是一个有界的。不是数学上无界的一个慨念!


权重计算方法

一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。单一选择器直接比较权重,多个选择器则需要计算。
复杂的计算方法:

  • 用1表示派生选择器的优先级
  • 用10表示类选择器的优先级
  • 用100标示ID选择器的优先级
    • div.test1 .span var 优先级 1+10 +10 +1
    • span#xxx .songs li 优先级1+100 + 10 + 1
    • #xxx li 优先级 100 +1
案例

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值