Css选择器.ab如何从选择abc中排除它?

Pin*_*sby 1 html css

我继承了一些非常类似于下面的html的标记.

<div class="a b">how_can_i_select_ab_only</div> 
<div class="a b disabled">how_can_i_select_ab_and_disabled_only</div>
Run Code Online (Sandbox Code Playgroud)

我想单独选择这两个元素.

css选择器.ab选择两个div

  • <div class="a b">how_can_i_select_ab_only</div>
  • <div class="a b disabled">how_can_i_select_ab_and_disabled_only</div>

什么是选择器只选择abdisabled类而只选择ab类?

pan*_*her 5

三种方法如何做到:

第一个,设置样式.a.b,然后删除它们(覆盖).a.b.disabled.

.a.b {color: red;}
.a.b.disabled {color: grey}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/p84s61gp/

第二种方法,使用attr选择器.

[class='a b'] {color: red}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/p84s61gp/1/

接下来,你可以使用:not选择器,但是从IE9开始支持.

.a.b:not(.disabled) {color: red}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/p84s61gp/2/