具有类.a和类.b的元素的CSS选择器

时间:2009-04-30 15:11:02

标签: css css-selectors

我需要设置一个包含类.a和类.b的元素的样式。我该怎么做?

类在HTML中出现的顺序可能会有所不同。

<style>
    div.a ? div.b {
        color:#f00;
    }
</style>
<div class="a">text not red</div>
<div class="b">text not red</div>
<div class="a b">red text</div>
<div class="b a">red text</div>

5 个答案:

答案 0 :(得分:56)

这完全有可能。如果在元素上指定两个类(没有任何空格),则意味着它必须同时具有两个类才能应用规则。

div.a {
  color: blue;
}
div.b {
  color: green;
}
div.a.b {
  color: red;
}
<div class="a">
  A
</div>
<div class="b">
  B
</div>
<div class="a b">
  AB
</div>

答案 1 :(得分:12)

可以组合类选择器:

div.a.b {
  color: red;
}

引自the spec

  

要匹配“class”值的子集,每个值必须以“。”开头。

     

例如,以下规则匹配任何P元素,其“class”属性已分配了包含“pastoral”和“marine”的空格分隔值列表:

p.marine.pastoral { color: green }
     

此规则与class="pastoral blue aqua marine"匹配,但与class="pastoral blue"不匹配。

答案 2 :(得分:5)

div[class~="a"][class~="b"]{
color:#f00;
}

答案 3 :(得分:-1)

/ *选择包含a和b类的div标签* /

 <style>
    div.a.b
    { 
         color:#f00;
    }
    </style>
    <div class="a">text not red</div>
    <div class="b">text not red</div>
    <div class="a b">red text</div>
    <div class="b a">red text</div>

答案 4 :(得分:-3)

是的,如果内容动态变化,请使用公共类,或者为什么不使用JavaScript