关于CSS特殊性的具体问题
我对CSS的特殊性有一个非常具体的问题,这是我无法清楚理解的; 如果我有两个选择器,它们定义了不矛盾的属性/属性,那么这两个属性是否仍然被应用,或者它的工作方式是什么,它只是比较选择器,而不考虑它们内部的定义 所以如果我们有,关于CSS特殊性的具体问题,css,css-selectors,css-specificity,Css,Css Selectors,Css Specificity,我对CSS的特殊性有一个非常具体的问题,这是我无法清楚理解的; 如果我有两个选择器,它们定义了不矛盾的属性/属性,那么这两个属性是否仍然被应用,或者它的工作方式是什么,它只是比较选择器,而不考虑它们内部的定义 所以如果我们有, .menu1 {color:red} p.menu1 {font-size:10px} 这里两个选择器都引用“menu1”,但定义了不相关的属性(颜色/字体大小) 所以我的问题是,特殊性是否仍然重要,并且只考虑其中的一个?我的问题更多的是关于实际实现是如何发生的。在文
.menu1 {color:red}
p.menu1 {font-size:10px}
这里两个选择器都引用“menu1”,但定义了不相关的属性(颜色/字体大小)
所以我的问题是,特殊性是否仍然重要,并且只考虑其中的一个?我的问题更多的是关于实际实现是如何发生的。在文章的概述中,第11点说: 十一,。定义的最后一条规则将覆盖以前的任何冲突规则 (其中“最后一条规则”可替换为“最后一条或最具体的规则”) 因此,如果存在不同的属性,则不会覆盖任何内容。这两条规则结合在一起,因此
p.menu1
的字体大小都是10像素,颜色都是红色。第二个规则仍然有一个更具体的选择器,但在您指定一个可能被覆盖的公共样式之前,它根本不相关
所有这些是如何在实现中完成的,这是一个实现细节,所以我不知道。不,在这种情况下,特殊性并不重要,因为您只是简单地向
menu1
类添加一个额外的属性,它不会更改任何现有规则。但是,如果您颠倒规则的顺序并尝试覆盖颜色
:
p.menu1 {color:blue}
.menu1 {color:red}
然后,不太具体的规则.menu1{color:red}
将不会覆盖更具体的p.menu1{color:blue}
,即使“红色”规则出现在“蓝色”规则之后(请尝试)
当然,如果您将第二条规则更改为
p.menu1{color:red}
,它将覆盖,因为这两条规则将具有相同的特殊性。请记住,具有class=“menu1”
但不是p
元素的元素将只具有红色;他们的字体大小可能不是10像素,因为他们不会响应p.menu1
选择器。你似乎击中了要害…你的答案正是我想要的…非常感谢。。