最适合网络开发者的网站

CSS 教程

CSS 主页 CSS 简介 CSS 语法 CSS 选择器 CSS 如何 CSS 注释 CSS 颜色 CSS 背景 CSS 边框 CSS 边距 CSS 填充 CSS 高度/宽度 CSS 盒子模型 CSS 大纲 CSS 文本 CSS 字体 CSS 图标 CSS 链接 CSS 列表 CSS 表格 CSS 显示 CSS 最大宽度 CSS 位置 CSS Z 索引 CSS 溢出 CSS 浮动 CSS 内联块 CSS 对齐 CSS 组合器 CSS 伪类 CSS 伪元素 CSS 不透明度 CSS 导航栏 CSS 下拉菜单 CSS 图片库 CSS 图像精灵 CSS Attr 选择器 CSS 表单 CSS 计数器 CSS 网站布局 CSS 单位 CSS 特殊性 CSS !重要 CSS 数学函数

CSS 高级

CSS 圆角 CSS 边框图像 CSS 背景 CSS 颜色 CSS 颜色关键字 CSS 渐变 CSS 阴影 CSS 文本效果 CSS Web 字体 CSS 2D 变换 CSS 3D 变换 CSS 过渡 CSS 动画 CSS 工具提示 CSS 样式图像 CSS 图像反射 CSS 对象适合 CSS 对象位置 CSS 遮罩 CSS 按钮 CSS 分页 CSS 多列 CSS 用户界面 CSS 变量 CSS 盒子尺寸 CSS 媒体查询 CSS MQ 示例 CSS 弹性框

CSS 响应式

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

CSS 网格

网格简介 网格容器 网格项

CSS 南苏丹援助协会

SASS 教程

CSS 例子

CSS 模板 CSS 示例 CSS 测验 CSS 练习 CSS 证书

CSS 参考

CSS 参考 CSS 选择器 CSS 函数 CSS 参考 Aural CSS Web 安全字体 CSS 动画 CSS 单位 CSS PX-EM 转换器 CSS 颜色 CSS 颜色值 CSS 默认值 CSS 浏览器支持

初学者的 CSS 课程

尿素

CSS 特异性


什么是特异性?

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

将特殊性视为决定最终应用于元素的样式声明的分数/等级。

请看以下示例:

示例 1

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

<html>
<head>
  <style>
p{颜色:红色;}
  </style>
</head>
<body>

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

</body>
</html>
亲自尝试 »

现在,看一下示例 2:

示例 2

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

<html>
<head>
  <style>
.测试 {颜色:绿色;}
p{颜色:红色;}
  </style>
</head>
<body>

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

</body>
</html>
亲自尝试 »

现在,看一下示例 3:

示例 3

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

<html>
<head>
  <style>
#demo {颜色:蓝色;}
.测试 {颜色:绿色;}
p{颜色:红色;}
  </style>
</head>
<body>

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

</body>
</html>
亲自尝试 »

现在,看一下示例 4:

示例 4

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

<html>
<head>
  <style>
#demo {颜色:蓝色;}
.测试 {颜色:绿色;}
p{颜色:红色;}
 </style>
</head>
<body>

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

</body>
</html>
亲自尝试 »

特异性层次结构

每个 CSS 选择器在特异性层次结构中都有其位置。

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

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

如何计算特异性?

记住如何计算特异性!

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

笔记: 内联样式的特殊性值为 1000,并且始终享有最高优先级!

笔记2: 这条规则有一个例外:如果你使用!important 规则,它甚至会覆盖内联样式!

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

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

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

考虑以下三个代码片段:

例子

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

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

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


更多特异性规则示例

同等特殊性:最新规则胜出 - 如果相同的规则在外部样式表中写入两次,则最新的规则有效:

例子

h1 {背景颜色:黄色;}
h1 {背景颜色:红色;}
亲自尝试 »

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

例子

div#a {背景颜色:绿色;}
#a {背景颜色:黄色;}
div[id=a] {背景颜色:蓝色;}

亲自尝试 »

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


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

例子

来自外部 CSS 文件:
#content h1 {背景颜色:红色;}

在 HTML 文件中:
<style>
#content h1 {背景颜色:黄色;}
</style>

将适用后一条规则。


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

例子

.intro {背景颜色:黄色;}
h1 {背景颜色:红色;}
亲自尝试 »

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