我不确定这是否可行,但是当你想根据应用它的类的组合来设置元素样式时,是否有一种语法用于CSS?
我知道我可以使用jQuery或其他东西来检查一个元素,并根据它所拥有的类来改变它的样式,但是有一种纯CSS方式可以做到这一点吗?
例如,如果我有一个粗体和绿色的类:
.bold_green { color:green; font-weight:bold; }
大胆和蓝色的课程:
.bold_blue { color:blue; font-weight:bold. }
现在,假设我使用jQuery动态添加和删除类,并希望任何具有两个类的元素都将斜体变为粉红色。
类似的东西:
.bold_green AND .bold_blue { color:pink; font-style:italic; }
或者,如果我想设置一个具有aclass的元素,并且是另一个具有另一个类的元素的后代?
类似的东西:
.bold_green HAS_CHILD .bold_blue { color:black; background-color:yellow; }
谢谢!
修改
感谢所有答案。这几乎就是我的想法(只是将类视为常规选择器),但它们似乎并不适合我。我将不得不检查我的代码,并确保它们没有被覆盖......
答案 0 :(得分:68)
$('.bold_green.bold_blue').addClass('something-else');
或者在CSS中:
.bold_green.bold_blue { color: pink; }
请注意,选择器之间没有空格。
答案 1 :(得分:6)
你不需要任何特别的东西,只需
.bold_green.bold_blue { color:pink; font-style:italic; }
答案 2 :(得分:3)
对于“HAS CHILD”案例,您可以使用:
.bold_green .bold_blue { ... } /* note the ' ' (called the descendant selector) */
将为bold_blue
元素中的任何bold_green
元素设置样式。
或者如果你想要一个DIRECT孩子:
.bold_green > .bold_blue { ... } /* this child selector does not work in IE6 */
仅对具有直接父bold_blue
的{{1}}元素进行样式设置。
答案 3 :(得分:1)
在visual studio 2013中,CSS设置由"逗号"应用于多个类。如下:
.bold_green, .bold_blue { color:pink; font-style:italic; }