在css中,有可能给同一个元素属性定义两次不同的数值。如:
h1 { color: red }
body h1 { color: red }
此时给h1定义了两种颜色,但是h1不可能有两种颜色,以上两种颜色只有一种能匹配h1的颜色。
而哪个颜色将会匹配h1,此时就需要了解css选择器的特殊性。
对于每一个规则,用户代理会计算选择器的特殊性,并将该特殊性附加到规则中的各个声明。如果一个元素有两个或多个冲突的属性声明,那么有最高特殊性的声明就会胜出。
将特殊性的结果比作四位数值。 如: 0, 0, 0, 0 ,有以下规则。
(1),声明中的每个ID属性值,加 0, 1, 0, 0. 如:
.#answer { color: red } // 特殊性: 0, 1, 0, 0 answer是一个id
(2),每个元素和伪元素, 加 0, 0, 0, 1 如:
h1 { color: red } //特殊性:0, 0, 0, 1 只有一个元素h1 div ul li { color: red } //特殊性:0, 0, 0, 3 三个元素( div, ul, li )
(3),每个类属性值,伪类,或属性选择器, 加 0, 0, 1, 0 如:
h2.grape { color: red } //特殊性:0, 0, 1,1 一个类属性值grape,一个元素h2 input[ type=“text” ] //特殊性:0, 0, 1, 1 一个属性选择器type=“text” 一个元素input
(4),结合符和通配选择器对特殊性贡献为0
* { color: red } 特殊性:0, 0, 0, 0
(5),继承来的属性没有特殊性,还不如0.
(6),內联样式声明的属性特殊性第一个数字为1,比其它外部声明的属性的特殊性都高
(7),带有important的属性特殊性最高.
(8),相同属性的特殊性相同时,匹配后声明的样式
例1:
p { color: red; //特殊性:0, 0, 0, 1 } body p { color: green; //特殊性:0, 0, 0, 2 特殊性较高 }
<p>My color: Red Or Green ?</p>
结果为:
例2:
body h1 { color: black; //特殊性:0, 0, 0, 2 } .test { color: gray; //特殊性:0, 0, 1, 0 } h1.test { color: orange; //特殊性:0, 0, 1, 1 特殊性最高 }
<h1 class="test">My color: Black Or Gray Or Orange ?</h1>
例3
#test { color: red; 特殊性:0, 1, 0, 0 特殊性较高 } table tr td ul li[id="test"] { color: gray; 特殊性:0, 0, 1, 5 }
<table> <tr> <td> <ul> <li id="test">My Color ?</li> </ul> </td> </tr> </table>
例4
#test { color: green; 特殊性: 0, 1, 0, 0 }
<p id="test2" style="color: red">My Color is Red</p> //为内联样式 特殊性高于其它外部样式
相关推荐
**CSS选择器特殊性分析** 在CSS样式表中,选择器是用于指定元素样式的关键工具。它们决定了哪些规则将应用于页面上的特定元素。选择器的特殊性(Specificity)是CSS优先级的一种度量,用于解决当多个选择器同时影响...
在CSS选择器的体系中,存在多种不同类型的选择器,每种都有其特定的用途和使用场景。 首先,元素选择符是最基本的类型,包括通配符选择器、标签选择器、id选择器和class选择器。通配符选择器用“*”表示,可以选中...
以下是关于CSS选择器权重计算及优先级的详细解释: 首先,我们要了解CSS选择器的四个等级及其对应权重: 1. **内联样式**(权重1000):这是最高级别的权重,当直接在HTML元素中使用`style`属性定义样式时,例如`;...
随着 Web 技术的不断发展,CSS3 带来了更为强大的选择器功能,极大地提升了网页设计的灵活性与效率。本篇文章将深入探讨 CSS3 选择器中的重要成员——`:nth` 选择器系列,并通过实例演示这些选择器的用法与应用场景...
脑图形式的css选择器和层叠规则整理,包括css选择器的类型以及css层叠规则的影响因素(重要性、来源、特殊性、顺序等等),属于前端基础技术的资源
在这篇关于"CSS基础选择器"的讲解中,我们将深入理解CSS选择器的概念以及如何使用它们来定位并应用样式到HTML元素。 **CSS选择器**是CSS中的基本概念,它们是用于选取HTML文档中特定元素的工具。选择器使得我们可以...
通过以上介绍可以看出,CSS选择器为开发者提供了强大的工具来控制页面元素的样式。无论是简单的标签选择器还是复杂的组合选择器,每种选择器都有其独特的作用和适用场景。正确理解和灵活运用这些选择器能够帮助我们...
CSS选择器的权重和优先规则是CSS样式应用的关键所在,它们决定了哪种样式会最终应用于网页元素。当多个样式规则同时作用于一个元素时,CSS会根据这些规则的特殊性来确定优先级,使得更特定的规则能够覆盖较不具体的...
以上介绍了30个前端必须掌握的CSS3选择器,它们不仅涵盖了基础的选择器,还包括了结构性、属性、伪类和伪元素选择器。这些选择器的强大之处在于它们能帮助开发者更加精确地控制页面元素的样式,从而实现丰富的视觉...
本节课主要讲述了CSS选择器的分类、组合使用方法以及优先级规则。 首先,让我们了解一下CSS选择器的基本分类: 1. **元素选择器(类型选择器)**:通过元素名称来选择元素,例如`div`选择所有`<div>`元素。 2. **...
本章将详细介绍CSS选择器中的伪类选择器部分,这是一类特别的选择器,用于根据元素的特定状态来选择它们。 首先,伪类选择器可以分为以下几类: 一、结构性伪类选择器:这类选择器通过元素在文档树中的位置来选择...
在网页设计中,CSS(Cascading ...结合CSS选择器与表单基础,我们可以创建出富有交互性和美观性的网页,实现用户友好的界面设计。在实际项目中,还需考虑浏览器兼容性、性能优化等问题,确保代码的健壮性和可维护性。
通常来说,特殊性的权重从高到低为:内联样式、ID选择器、类选择器、伪类和属性选择器、标签选择器和伪元素。特殊性可以看作是一个权值,用于在出现冲突的样式规则时决定使用哪一个。例如,类选择器的权值高于标签...
伪类和伪元素是CSS中的特殊选择器,它们可以针对元素的特定状态(如`:hover`,`:active`,`:focus`)或位置(如`::before`,`::after`)来应用样式。 CSS3引入了更多的高级选择器,如`:not()`否定伪类,它允许我们...
CSS 选择器特殊性 - **CSS 选择器的特殊性**:CSS 选择器有不同的权重等级,这决定了它们应用样式的优先级。例如,类选择器比类型选择器更具有优先级,而 ID 选择器又比类选择器更有优先级。 ### 10. 图像格式...
了解并熟练运用CSS选择器优先级顺序,可以帮助开发者更精确地控制元素的样式,避免不必要的样式冲突,从而提高代码的可读性和维护性。在实际开发中,尽量减少对 `!important` 的依赖,因为它会使代码难以管理和调试...
理解CSS选择器优先级是编写高效、可维护CSS代码的关键。以下是关于CSS选择器优先级的一些详细说明: 首先,CSS选择器的优先级由四个部分组成,每个部分对应一个权重值: 1. ID选择器(#id):每个ID选择器的权重为...
总之,理解和熟练运用CSS选择器的特殊性和`!important`规则,可以帮助开发者精确控制网页元素的样式,从而创建出更具吸引力和功能性的网页设计。同时,合理地使用这些工具可以提高代码的可读性和可维护性。
- 伪元素可以与其他CSS选择器一起使用,以实现更复杂的布局和设计效果。 - 为了保持良好的可读性,建议在 `content` 中使用引号包裹文本内容。 通过学习和熟练掌握 `:before` 和 `:after` 伪元素选择器,开发者可以...