You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何通配符* CSS选择器在示例中优先级更高?

CSS样式继承与选择器优先级问题解析

编码时遇到意外:即便存在更高特异性的CSS规则,无特异性的全局选择器规则仍被应用。原本预期:

  • Text1为蓝色
  • Text2为蓝色
    但实际Text1被渲染为绿色。

示例代码

CSS代码

* {
  color: green;
}

.blue-text {
  color: blue;
}

HTML代码

<div class="blue-text">
  <div>
    Text1 <!-- Why is this not blue? -->
  </div>
  Text2
</div>

原因解析

核心在于CSS继承机制与样式优先级的底层规则:

  • .blue-text选择器仅作用于拥有该类的外层<div>,它设置的color: blue会被内部元素继承,但继承来的样式优先级极低,低于任何直接应用在元素上的样式。
  • *是全局选择器,会直接选中页面上所有元素(包括内部的那个<div>),并直接为其设置color: green。哪怕这个选择器的特异性为0,只要是直接作用在目标元素上的样式,优先级就高于从父元素继承来的样式。

因此内部<div>的文字被全局选择器直接设置的绿色覆盖,而外层<div>的文字(Text2)没有被其他直接样式覆盖,所以显示.blue-text定义的蓝色。

内容的提问来源于stack exchange,提问作者Draex_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:29:54