CSS 选择器优先级详解及实例演示

在CSS样式设计中,不同的选择器具有不同的优先级,当多个样式应用于同一元素时,优先级较高的规则将覆盖优先级较低的规则。以下是对CSS选择器优先级的详细说明,并通过实例进行演示:

1. 内联样式 (Inline Styles)

内联样式直接写在HTML元素的style属性中,其优先级最高,权重为 1000

示例:

html 复制代码
<p style="color: red;">这段文本将显示为红色</p>

即使存在其他定义颜色的选择器,由于内联样式的高优先级,该段文本仍会显示为红色。

2. ID 选择器 (#id)

ID选择器用于指定唯一元素,其权重为 100

示例:

css 复制代码
#uniqueId {
  color: blue;
}
html 复制代码
<p id="uniqueId">此文本将显示为蓝色</p>

尽管有其他可能影响文本颜色的类或标签选择器,但ID选择器的优先级更高,因此文本颜色为蓝色。

3. 类选择器、伪类选择器以及属性选择器 (.class, :hover, [attr])

这些选择器的权重相同,均为 10

  • 类选择器:
css 复制代码
.highlight {
  color: green;
}
html 复制代码
<p class="highlight">此文本将显示为绿色</p>
  • 伪类选择器:
css 复制代码
a:hover {
  text-decoration: underline;
}
  • 属性选择器:
css 复制代码
[target="_blank"] {
  color: orange;
}
html 复制代码
<a href="#" target="_blank">此链接在鼠标悬停时会下划线且颜色为橙色</a>

在这三种情况下,如果同时应用了多个选择器到同一个元素上,它们之间不会有优先级差异,而是根据样式表中的顺序决定(后定义的覆盖前面定义的)。

4. 标签选择器和伪元素选择器 (element, ::before, ::after)

标签选择器和伪元素选择器同样具有相同的权重,均为 1

  • 标签选择器:
css 复制代码
p {
  font-size: 16px;
}
  • 伪元素选择器:
css 复制代码
p::first-letter {
  font-weight: bold;
}

在以上示例中,无论标签选择器还是伪元素选择器,它们的样式均会被优先级更高的ID选择器、类选择器等所覆盖。

总结来说,在没有使用 !important 规则的情况下,CSS选择器的优先级排序如下:

  1. 内联样式
  2. ID 选择器
  3. 类选择器 = 伪类选择器 = 属性选择器
  4. 标签选择器 = 伪元素选择器

当不同优先级的选择器作用于同一元素时,优先级高的样式将生效;若优先级相同,则遵循样式表中声明的先后顺序,后者覆盖前者。

相关推荐
ℋᙚᵐⁱᒻᵉ鲸落8 小时前
移动端滑动手势冲突:overflow: auto导致外层横向滑动失效
前端·javascript·css·vue.js·html
默_笙9 小时前
🎃 前端学了 Next.js,后端该学啥?NestJS 就是 Node 版的蜜雪冰城
前端·javascript
前端snow10 小时前
ai agent --- 实现 openclaw 定时间效果
前端
码云之上11 小时前
换模型之后,Chatbot 为什么要自己做 compact?
前端·agent·前端工程化
星栈11 小时前
自定义 UI-UX-Pro-Max 的 CSV 知识库,把 AI 生成的后台拉回行业该有的样子
前端·agent·weui
研☆香11 小时前
简单的图片上传 删除 预览
前端
ITresearchGuest11 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
慧一居士13 小时前
Vite项目中使用Less步骤,详细使用示例
前端·css
花间相见13 小时前
【LangChain组件03】—— LangChain Agents 执行与状态:工作流程与状态管理实战
java·前端·langchain
kyriewen13 小时前
面试官让我用 AI 重构一个 8 年陈的 React 组件——他说他不看代码,只看我会不会拆
前端·javascript·面试