轻松上手,快乐学习!

CSS 教程

CSS 教程CSS 简介CSS 语法CSS 选择器CSS 如何使用CSS 注释CSS 颜色RGB 颜色HEX 颜色HSL 颜色CSS 背景CSS 背景图像CSS 背景重复CSS 背景附着CSS 背景简写属性CSS 边框CSS 边框宽度CSS 边框颜色CSS 边框各边CSS 简写边框属性CSS 圆角边框CSS 外边距CSS 外边距合并CSS 内边距CSS 高度/宽度CSS Box 模型CSS 轮廓CSS 轮廓宽度CSS 轮廓颜色CSS 轮廓简写属性CSS 轮廓偏移CSS 文本CSS 文本对齐CSS 文本修饰CSS 文本转换CSS 文本间距CSS 文本阴影CSS 字体CSS 字体样式CSS 字体大小CSS 谷歌字体CSS 字体简写属性CSS 图标CSS 链接CSS 列表CSS 表格CSS DisplayCSS Max-widthCSS 定位CSS 溢出CSS 浮动CSS 清除浮动CSS 浮动实例CSS Inline-blockCSS 对齐CSS 组合器CSS 伪类CSS 伪元素CSS 不透明度CSS 导航栏CSS 垂直导航栏CSS 水平导航栏CSS 下拉菜单CSS 图片库CSS 图像拼合技术CSS 属性选择器CSS 表单CSS 计数器CSS 网站布局CSS 单位CSS 特异性CSS3 高级教程CSS3 简介CSS3 圆角CSS3 边框图像CSS3 多重背景CSS3 颜色CSS3 渐变CSS3 径向渐变CSS3 阴影CSS3 盒子阴影CSS3 文本效果CSS3 网络字体CSS3 2D 转换CSS3 3D 转换CSS3 过渡CSS3 动画CSS3 提示框CSS3 样式图像CSS3 object-fitCSS3 按钮CSS3 分页CSS3 多列CSS3 用户界面CSS3 变量CSS3 覆盖变量CSS3 变量 - JavaScriptCSS3 盒子大小CSS3 媒体查询CSS3 媒体查询实例CSS3 弹性盒子CSS3 弹性容器CSS3 弹性项目CSS3 弹性响应式RWD 简介RWD 视口RWD 网格视图RWD 媒体查询RWD 图像RWD 视频RWD 框架RWD 模板Grid 网络简介Grid 网格容器Grid 网格项目CSS 模板CSS 实例CSS 测验CSS 练习

CSS 参考手册

CSS 参考手册CSS 浏览器支持CSS 选择器参考手册CSS 函数参考手册CSS 听觉参考手册CSS 网络安全字体CSS 动画相关属性CSS 单位Px/Em 换算CSS 颜色CSS 合法颜色值CSS 默认值参考手册CSS 实体


CSS 特异性


什么是特异性?

如果有两条或两条以上指向同一元素的冲突 CSS 规则,则浏览器将遵循一些原则来确定哪一条是最具体的,并因此胜出。

将特异性(specificity)视为得分/等级,能够确定最终将哪些样式声明应用于元素。

通用选择器(*)具有较低的特异性,而 ID 选择器具有较高的特异性!

注释: 这种特异性是 CSS 规则不适用于某些元素的常见原因,尽管您可能会认为应该适用。


特异性层次

每个选择器在特异性层次结构中都有其位置。以下四种类别定义了选择器的特异性级别:

行内样式 - 行内(内联)样式直接附加到要设置样式的元素。实例:<h1 style="color: #ffffff;">。

ID - ID 是页面元素的唯一标识符,例如 #navbar。

类、属性和伪类 - 此类别包括 .classes、[attributes] 和伪类,例如::hover、:focus 等。

元素和伪元素 - 此类别包括元素名称和伪元素,比如 h1、div、:before 和 :after。


如何计算特异性?

请您牢记计算特异性的方法!

从 0 开始,为 style 属性添加 1000,为每个 ID 添加 100,为每个属性、类或伪类添加 10,为每个元素名称或伪元素添加 1。

请思考以下三个代码片段:

实例

A: h1
B: #content h1
C: <div id="content"><h1 style="color: #ffffff">Heading</h1></div>
  • A 的特异性为 1(一个元素)
  • B 的特异性为 101(一个 ID 引用以及一个元素)
  • C 的特异性为 1000(行内样式)

由于 1 < 101 < 1000,因此第三条规则(C)具有更高的特异性,所以将被应用。


特异性规则 1:

在特异性相同的情况下:最新的规则很重要 - 如果将同一规则两次写入外部样式表,那么样式表中后面的规将更靠近要设置样式的元素,因此会被应用:

实例

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

亲自试一试 »

后一条规则始终适用。


特异性规则 2:

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

实例

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

亲自试一试 »

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


特异性规则 3:

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

实例

From external CSS file:
#content h1 {background-color: red;}

In HTML file:
<style>
#content h1 {
  background-color: yellow;
}
</style>

将适用后一条规则。


特异性规则 4:

类选择器会击败任意数量的元素选择器 - 类选择器(诸如 .intro 会击败 h1、p、div 等):

实例

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

亲自试一试 »


此外,通用选择器以及被继承的值拥有 0 - * 的特异性,body * 及类似拥有 0 的特异性。被继承的值的特异性也为 0。