菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

CSS 教程

CSS 主页 CSS 简介 CSS 语法 CSS 选择器 CSS 如何做 CSS 注释 CSS 颜色 CSS 背景 CSS 边框 CSS 外边距 CSS 内边距 CSS 高度/宽度 CSS 盒模型 CSS 轮廓 CSS 文本 CSS 字体 CSS 图标 CSS 链接 CSS 列表 CSS 表格 CSS Display CSS Max-width CSS Position CSS Z-index CSS Overflow CSS Float CSS Inline-block CSS Align CSS 组合器 CSS 伪类 CSS 伪元素 CSS 透明度 CSS 导航栏 CSS 下拉菜单 CSS 图片库 CSS 图片精灵 CSS 属性选择器 CSS 表单 CSS 计数器 CSS 网站布局 CSS 单位 CSS 特异性 CSS !important CSS 数学函数

CSS 高级

CSS 圆角 CSS 边框图片 CSS 背景 CSS 颜色 CSS 颜色关键字 CSS 渐变 CSS 阴影 CSS 文本效果 CSS Web 字体 CSS 2D 转换 CSS 3D 转换 CSS 过渡 CSS 动画 CSS 工具提示 CSS 样式图像 CSS 图像反射 CSS object-fit CSS object-position CSS 遮罩 CSS 按钮 CSS 分页 CSS 多列 CSS 用户界面 CSS 变量 CSS @property CSS 盒尺寸 CSS 媒体查询 CSS MQ 示例 CSS Flexbox

CSS 响应式

RWD 简介 RWD 视口 RWD 网格视图 RWD 媒体查询 RWD 图片 RWD 视频 RWD 框架 RWD 模板

CSS 网格

网格简介 网格容器 网格项

CSS SASS

SASS 教程

CSS 示例

CSS 模板 CSS 示例 CSS 编辑器 CSS 片段 CSS 测验 CSS 练习 CSS 网站 CSS 面试准备 CSS 训练营 CSS 证书

CSS 参考手册

CSS 参考 CSS 选择器 CSS 函数 CSS 参考(听觉) CSS Web 安全字体 CSS 可动画属性 CSS 单位 CSS PX 转 EM 转换器 CSS 颜色 CSS 颜色值 CSS 默认值 CSS 浏览器支持

CSS 特异性


什么是特异性?

如果有两个或多个 CSS 规则指向同一个元素,特异性值最高的选择器将“获胜”,其样式声明将被应用于该 HTML 元素。

将特异性视为一个分数/排名,它决定了最终将哪个样式声明应用于元素。

看看下面的例子

示例 1

在此示例中,我们使用“p”元素作为选择器,并为此元素指定了红色。文本将是红色的

<html>
<head>
  <style>
    p {color: red;}
  </style>
</head>
<body>

<p>你好世界!</p>

</body>
</html>

自己动手试一试 »

现在,看看示例 2

示例 2

在此示例中,我们添加了一个类选择器(名为“test”),并为此类指定了绿色。文本现在将是绿色的(即使我们为元素选择器“p”指定了红色)。这是因为类选择器具有更高的优先级

<html>
<head>
  <style>
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p class="test">你好世界!</p>

</body>
</html>

自己动手试一试 »

现在,看看示例 3

示例 3

在此示例中,我们添加了 ID 选择器(名为“demo”)。文本现在将是蓝色的,因为 ID 选择器具有更高的优先级

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test">你好世界!</p>

</body>
</html>

自己动手试一试 »

现在,看看示例 4

示例 4

在此示例中,我们为“p”元素添加了内联样式。文本现在将是粉色的,因为内联样式具有最高的优先级

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test" style="color: pink;">你好世界!</p>

</body>
</html>

自己动手试一试 »


特异性层级

每个 CSS 选择器在特异性层级中都有自己的位置。

有四个类别定义了选择器的特异性级别

  1. 内联样式 - 示例:<h1 style="color: pink;">
  2. ID - 示例:#navbar
  3. 类、伪类、属性选择器 - 示例:.test, :hover, [href]
  4. 元素和伪元素 - 示例:h1, ::before

如何计算特异性?

记住如何计算特异性!

从 0 开始,每有一个 ID 值加 100,每有一个类值(或伪类或属性选择器)加 10,每有一个元素选择器或伪元素加 1。

注意: 内联样式获得特异性值 1000,并且始终具有最高优先级!

注意 2: 这个规则有一个例外:如果您使用 !important 规则,它甚至会覆盖内联样式!

下表展示了一些如何计算特异性值的示例

选择器 特异性值 计算
p 1 1
p.test 11 1 + 10
p#demo 101 1 + 100
<p style="color: pink;"> 1000 1000
#demo 100 100
.test 10 10
p.test1.test2 21 1 + 10 + 10
#navbar p#demo 201 100 + 1 + 100
* 0 0(通用选择器被忽略)

特异性值最高的选择器将获胜并生效!

考虑这三个代码片段

示例

A: h1
B: h1#content
C: <h1 id="content" style="color: pink;">标题</h1>

A 的特异性是 1(一个元素选择器)
B 的特异性是 101(一个 ID 引用 + 一个元素选择器)
C 的特异性是 1000(内联样式)

由于第三条规则 (C) 具有最高的特异性值 (1000),因此将应用此样式声明。



更多特异性规则示例

特异性相同:最后规则获胜 - 如果相同的规则在外部样式表中被写入两次,则最后编写的规则获胜

示例

h1 {background-color: yellow;}
h1 {background-color: red;}

自己动手试一试 »


ID 选择器比属性选择器具有更高的特异性 - 看看下面的三行代码

示例

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

自己动手试一试 »

第一条规则比其他两条更具体,因此将被应用。


上下文选择器比单个元素选择器更具体 - 嵌入式样式表更接近要设置样式的元素。所以在下面的情况下

示例

/* 来自外部 CSS 文件:*/
#content h1 {background-color: red;}

/* 在 HTML 文件中:*/
<style>
#content h1 {background-color: yellow;}
</style>

后者规则将被应用。


类选择器胜过任意数量的元素选择器 - 类选择器(如 .intro)胜过 h1、p、div 等

示例

.intro {background-color: yellow;}
h1 {background-color: red;}

自己动手试一试 »


通用选择器 (*) 和继承的值特异性为 0 - 通用选择器 (*) 和继承的值将被忽略!


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持