CSS优先级如何计算

首先,优先级有四个组成部分:内联样式、ID选择器、类选择器和标签选择器

内联样式 > ID选择器 > 类选择器 > 标签选择器

到具体的计算层⾯,优先级是由 A 、B、C、D 的值来决定的,其中它们的值计算规则如下:

如果存在内联样式,那么 A = 1, 否则 A = 0

B的值等于ID选择器(#id)出现的次数

C的值等于类选择器(.class)属性选择器(a[href="https://www.baidu.com"])和伪类选择器(:first-child)出现的总次数。

D的值等于标签选择器(div,span,a) 和伪元素选择器(::before,::after)出现的总次数

例如:#name>div>span>a.hover

套用上面的算法,依次求出A,B,C,D的值:

1. 因为没有内联样式 ,所以 A = 0

2. ID选择器总共出现了1次, B = 1

3. 类选择器出现了1次, 属性选择器出现了0次,伪类选择器出现0次,所以 C = (1 + 0 + 0) = 1

4. 标签选择器出现了3次, 伪元素出现了0次,所以 D = (3 + 0) = 3

通过以上步骤算出的A 、 BCD 可以简记作:(0, 1, 1, 3)

优先级的比较规则

从左往右依次进行比较 ,较大者优先级更高;

如果相等,则继续往右移动一位进行比较;

如果4位全部相等,则后面的会覆盖前面的。

经过上面的优先级计算规则,我们知道内联样式的优先级最高,如果外部样式需要覆盖内联样式,就需要使用!important

更多练习

// 标签选择器
li                                      /* (0, 0, 0, 1) */
ul li                                   /* (0, 0, 0, 2) */
ul ol+li                                /* (0, 0, 0, 3) */
// 标签选择器,属性选择器
h1 + *[REL=up]                          /* (0, 0, 1, 1) */
// 标签选择器,类选择器
ul ol li.red                            /* (0, 0, 1, 3) */
li.red.level                            /* (0, 0, 2, 1) */
// 类选择器
.a1.a2.a3.a4.a5.a6.a7.a8.a9.a10.a11     /* (0, 0, 11,0) */
// id选择器
#name                                   /* (0, 1, 0, 0) */
// 标签选择器,伪类,类选择器
li:nth-child(odd) main .name            /* (0, 0, 2, 2) */
// id选择器,类选择器,标签选择器,伪类
#name .active > a:hover                 /* (0, 1, 2, 1) */
// 标签选择器,id选择器,类选择器,伪类选择器
html body #name .active > a:hover       /* (0, 1, 2, 3) */

补充知识:伪类选择器有哪些 

:link :选择未被访问的链接

:visited:选取已被访问的链接

:active:选择活动链接

:hover :鼠标指针浮动在上面的元素

:focus :选择具有焦点的

:first-child:父元素的首个子元素

补充知识:伪元素选择器有哪些

::first-letter :用于选取指定选择器的首字母

::first-line :选取指定选择器的首行

::before : 选择器在被选元素的内容前面插入内容

::after : 选择器在被选元素的内容后面插入内容

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值