Html 将id选择器优先于id和类

Html 将id选择器优先于id和类,html,css,Html,Css,在这种情况下,我加载一个样式时,应该优先选择另一个样式。 这种情况类似于中的情况,在这种情况下,特定id选择器的优先级不高于使用特定id下的类的另一个选择器 --HTML <div id="cont"> <p class="hello" id="hello">I wish I was blue</p> </div> --CSS #hello { color:blue; } #cont .hello { color:red; }

在这种情况下,我加载一个样式时,应该优先选择另一个样式。 这种情况类似于中的情况,在这种情况下,特定id选择器的优先级不高于使用特定id下的类的另一个选择器

--HTML
<div id="cont">
<p class="hello" id="hello">I wish I was blue</p>
</div>

--CSS
#hello {
    color:blue;
}
#cont .hello {
    color:red;
}

Result is red text
--HTML

我希望自己是蓝色的

--CSS #你好{ 颜色:蓝色; } #继续,你好{ 颜色:红色; } 结果是红色文本
我敢肯定,这是不可能的使用!重要-我真的想避免,因为这将由没有css技能的设计师来维护A/B测试。我想为他们做一个选择器,他们只会编辑它的属性


编辑:为了清楚起见,将
#hello
选择器注入页面,我想将其更改为实际工作的选择器,但我不想为此更改其他选择器。当然,如果我没有选择的话,我会这样做,但是这个css看起来是合理的,因为它是有效的,并且在不修改它的情况下覆盖该选择器应该是可能的。

您不需要两个不同的选择器。您可以保留一个:

.hello {
    color:red;
}
#cont .hello {
    color:blue;
}

您不需要两个不同的选择器。您可以保留一个:

.hello {
    color:red;
}
#cont .hello {
    color:blue;
}

您不需要两个不同的选择器。您可以保留一个:

.hello {
    color:red;
}
#cont .hello {
    color:blue;
}

您不需要两个不同的选择器。您可以保留一个:

.hello {
    color:red;
}
#cont .hello {
    color:blue;
}

只需使用
:not
选择器即可排除
#hello
元素

将第一个更改为:

#cont .hello:not(#hello) {
    color:red;
}

否定CSS伪类:not(X)是一种函数表示法 将简单选择器X作为参数。它与 不由参数表示。X不能包含另一个 求反选择器或任何伪元素


或者-根据下面的注释,您可以增加第二个选择器的特殊性,同时为各种上下文提供变体:

#hello, #cont #hello, #hello.hello {
    color:blue;
}

只需使用
:not
选择器排除
#hello
元素

将第一个更改为:

#cont .hello:not(#hello) {
    color:red;
}

否定CSS伪类:not(X)是一种函数表示法 将简单选择器X作为参数。它与 不由参数表示。X不能包含另一个 求反选择器或任何伪元素


或者-根据下面的注释,您可以增加第二个选择器的特殊性,同时为各种上下文提供变体:

#hello, #cont #hello, #hello.hello {
    color:blue;
}

只需使用
:not
选择器排除
#hello
元素

将第一个更改为:

#cont .hello:not(#hello) {
    color:red;
}

否定CSS伪类:not(X)是一种函数表示法 将简单选择器X作为参数。它与 不由参数表示。X不能包含另一个 求反选择器或任何伪元素


或者-根据下面的注释,您可以增加第二个选择器的特殊性,同时为各种上下文提供变体:

#hello, #cont #hello, #hello.hello {
    color:blue;
}

只需使用
:not
选择器排除
#hello
元素

将第一个更改为:

#cont .hello:not(#hello) {
    color:red;
}

否定CSS伪类:not(X)是一种函数表示法 将简单选择器X作为参数。它与 不由参数表示。X不能包含另一个 求反选择器或任何伪元素


或者-根据下面的注释,您可以增加第二个选择器的特殊性,同时为各种上下文提供变体:

#hello, #cont #hello, #hello.hello {
    color:blue;
}

我建议您在第一组CSS规则中添加另一个id选择器

 #cont #hello {
    color:blue;
   }

 #cont .hello {
    color:red;
   }
演示

在本例中,颜色被覆盖为红色,因为您只使用了一个id选择器#hello,并且它比组合了两个id或一个id和一个类的选择器更不具体,就像您所做的那样:

#cont .hello {
    color:blue;
}
在编写CSS代码时要考虑的一件事是CSS特性的概念。理解好这个概念将避免你不得不使用!重要的

根据Mozilla开发者网络的定义,特殊性仍然是:

特定性是浏览器决定哪个属性的方法 值是与元素最相关的,可以应用。 特异性仅基于由以下内容组成的匹配规则: 不同种类的选择器

以下选择器列表是通过增加特异性来实现的:

  • 通用选择器
  • 类型选择器
  • 类选择器
  • 属性选择器
  • 伪类
  • ID选择器
  • 内联样式
您可以通过计算CSS语句中存在多少选择器来测量特异性

CSS特性可以由4列优先级表示:

内联=1 | 0 | 0 | 0

id=0 | 1 | 0 | 0

等级=0 | 0 | 1 | 0

元素=0 | 0 | 0 | 1

从左到右,最高数字优先


我建议您在第一组CSS规则中添加另一个id选择器

 #cont #hello {
    color:blue;
   }

 #cont .hello {
    color:red;
   }
演示

在本例中,颜色被覆盖为红色,因为您只使用了一个id选择器#hello,并且它比组合了两个id或一个id和一个类的选择器更不具体,就像您所做的那样:

#cont .hello {
    color:blue;
}
在编写CSS代码时要考虑的一件事是CSS特性的概念。理解好这个概念将避免你不得不使用!重要的

根据Mozilla开发者网络的定义,特殊性仍然是:

特定性是浏览器决定哪个属性的方法 值是与元素最相关的,可以应用。 特异性仅基于由以下内容组成的匹配规则: 不同种类的选择器

以下选择器列表是通过增加特异性来实现的:

  • 通用选择器
  • s型