根据多个类选择元素

Cie*_*iel 340 css css-selectors

我有一个样式规则,当它有两种样式时我想应用于标签.有没有办法在没有JavaScript的情况下执行此操作?换一种说法:

<li class='left ui-class-selector'>
Run Code Online (Sandbox Code Playgroud)

我想申请我的样式规则如果li有两个.left.ui-class-selector类应用.

Fel*_*ing 569

你的意思是两个班级?"链"选择器(它们之间没有空格):

.class1.class2 {
    /* style here */
}
Run Code Online (Sandbox Code Playgroud)

这将选择与所有元素class1也有class2.

在你的情况下:

li.left.ui-class-selector {

}
Run Code Online (Sandbox Code Playgroud)

官方文档:CSS2类选择器.


由于akamike在Internet Explorer 6中指出了此方法的问题,您可能需要阅读:在IE6 CSS中使用双类?

  • 它不是:)所有主要网站已经下降,正在下降或计划在不久的将来支持IE6下降..做同样的! (15认同)
  • 请注意,IE6不喜欢这些,因为它不读取类链.它只会查看链中的最后一个类. (6认同)
  • 我深情地记得在 IE6 的坟墓上跳舞。今年我什至不必支持 IE10,而且即将完全放弃 IE。我爱未来。☺ (2认同)
  • @BenKoshy:它被解释为[*后代组合器*](https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator)。`.a .b` 适用于所有以元素 `.a` 作为祖先的元素 `.b`。 (2认同)

nid*_*806 21

链选择器不仅限于类,您可以为类和ID执行此操作.

.classA.classB {
/*style here*/
}
Run Code Online (Sandbox Code Playgroud)

班级号

.classA#idB {
/*style here*/
}
Run Code Online (Sandbox Code Playgroud)

Id&Id

#idA#idB {
/*style here*/
}
Run Code Online (Sandbox Code Playgroud)

除IE 6外,所有当前浏览器都支持此功能,它根据列表中的最后一个选择器进行选择.所以".classA.classB"将基于".classB"进行选择.

对于你的情况

li.left.ui-class-selector {
/*style here*/
}
Run Code Online (Sandbox Code Playgroud)

要么

.left.ui-class-selector {
/*style here*/
}
Run Code Online (Sandbox Code Playgroud)

  • Id和Id是概念上很奇怪的选择器。 (6认同)
  • 我认为双 ID 选择器是不可能的,因为它表示同一个元素需要有两个不同的 ID。 (2认同)

bah*_*esh 5

您可以使用这些解决方案:

CSS 规则适用于具有以下两个类的所有标签:

.left.ui-class-selector {
    /*style here*/
}
Run Code Online (Sandbox Code Playgroud)

CSS 规则适用于具有<li>以下两个类的所有标签:

li.left.ui-class-selector {
   /*style here*/
}
Run Code Online (Sandbox Code Playgroud)

jQuery 解决方案:

$("li.left.ui-class-selector").css("color", "red");
Run Code Online (Sandbox Code Playgroud)

JavaScript 解决方案:

document.querySelector("li.left.ui-class-selector").style.color = "red";
Run Code Online (Sandbox Code Playgroud)