CSS选择器的优先级

本文详细探讨了CSS选择器的优先级,通过一个生动的黑板修改例子,阐述了内联样式、ID选择器、类选择器和元素选择器的优先级关系,并介绍了选择器的权重计算规则。文中还涉及了属性选择器、伪类选择器的权重,以及!important的特殊地位。文章以实际案例帮助读者理解并验证选择器优先级。

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

本篇博文由于夹杂了本人的理解以及方便初学者浏览的推导过程和基本概念补充,故篇幅较长。结论在最后,可直接跳至结尾查看

更多文章请查看:sawyersven.github.io

在了解今天的核心内容选择器的优先级之前,我们先复习一下关于CSS选择器:

CSS选择器

既然我们要搞懂的是CSS选择器的优先级,那我们首先肯定要知道CSS有哪些选择器:

  1. 类型选择器/元素选择器(如:p,div,ul,li,span)
  2. 类选择器(如:class=“header” => .header,class=“body” => .body)
  3. ID选择器(如:id=“box => #box,id=“name” => #name”)
  4. 伪类选择器(如:.box:hover,a:active,li:first-child)
  5. 通用选择器(*)
  6. 属性选择器(input[type=“text”],button[type=“submit”])
  7. 基于关系的选择器(ul li,div > span,div + div,div + p)

以上7种选择器基本上包括了我们日常工作中会用到的绝大多数选择器形式,此外还有!important和元素内联的style属性,这两种我们后边会讲。

复习了关于CSS选择器的内容,我们接下来走进今天的主题 - CSS选择器的优先级

举个栗子

  • 有一天数学老师在课间告诉大家体育老师生病了,所以下午的体育课改上数学课。怕有的同学没收到通知,就在黑板上写下了:
<div class="blackboard">
    <p>由于体育老师生病,所以下午的体育课改上数学课</p>
</div>

.blackboard{
   
    background:#000 //黑板是黑的噻
}
p{
   
    color:#fff;  // 老师用白色粉笔写的
}

于是同学们在上课的时候就看到了黑板上的内容:

黑板

  • 班长觉得后排睡觉的小明看不清楚黑板上的字,于是走上讲台用红色的粉笔覆盖在老师的字上把这句话描成了红的:

p{
   
    color:#fff;  //老师先用白色粉笔写
}

p{
   
    color:#ff0000; //班长后用红色粉笔写
}

所以黑板上的字就变成了这样:

黑板

班上调皮捣蛋的阿辉在打闹的时候不小心把一瓶蓝色的墨水洒到了黑板上,于是这行字又变成了蓝色墨水色:

 <div class="blackboard">
    <p class="blue-ink">由于体育老师生病,所以下午的体育课改上数学课</p>
</div>
p{
   
    color:#fff //老师先用白色粉笔写
}
.blue-ink{
   
    color:blue; // 阿辉泼上去的蓝色墨水
}
p{
   
    color:#ff0000; //班长后用红色粉笔写
}

黑板

班长觉得黑板上蓝色的字很难看清,就又用红色粉笔准备写成红色,但是发现由于墨水的湿度黑板上用粉笔已经写不了了,所以很生气。跑去办公室叫来了班主任。

班主任灵(瞎)机(机)一(8)动(搞)用涂改液涂在墨水的印记上,然后这行字又变成了白色的:

  <p id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值