我需要设置一个包含类.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>
答案 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