Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于CSS特殊性的具体问题_Css_Css Selectors_Css Specificity - Fatal编程技术网

关于CSS特殊性的具体问题

关于CSS特殊性的具体问题,css,css-selectors,css-specificity,Css,Css Selectors,Css Specificity,我对CSS的特殊性有一个非常具体的问题,这是我无法清楚理解的; 如果我有两个选择器,它们定义了不矛盾的属性/属性,那么这两个属性是否仍然被应用,或者它的工作方式是什么,它只是比较选择器,而不考虑它们内部的定义 所以如果我们有, .menu1 {color:red} p.menu1 {font-size:10px} 这里两个选择器都引用“menu1”,但定义了不相关的属性(颜色/字体大小) 所以我的问题是,特殊性是否仍然重要,并且只考虑其中的一个?我的问题更多的是关于实际实现是如何发生的。在文

我对CSS的特殊性有一个非常具体的问题,这是我无法清楚理解的;

如果我有两个选择器,它们定义了不矛盾的属性/属性,那么这两个属性是否仍然被应用,或者它的工作方式是什么,它只是比较选择器,而不考虑它们内部的定义

所以如果我们有,

.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
选择器。你似乎击中了要害…你的答案正是我想要的…非常感谢。。