J'ai une règle de style que je veux appliquer à une balise quand elle a deux styles. Est-il possible d'effectuer cela sans JavaScript? En d'autres termes:
<li class='left ui-class-selector'>
Je souhaite appliquer ma règle de style uniquement si la classe li
a les classes .left
et .ui-class-selector
appliquées.
Vous voulez dire deux classes? "Enchaînez" les sélecteurs (sans espace):
.class1.class2 {
/* style here */
}
Ceci sélectionne tous les éléments avec class1
qui ont aussi class2
.
Dans ton cas:
li.left.ui-class-selector {
}
Documentation officielle: Sélecteurs de classe CSS2 .
Comme akamike indique un problème avec cette méthode dans Internet Explorer 6, vous voudrez peut-être lire ceci: Utiliser des classes doubles dans IE6 CSS?
Les sélecteurs de chaîne ne se limitent pas aux classes, vous pouvez le faire pour les classes et les identifiants.
Des classes
.classA.classB {
/*style here*/
}
Identifiant de classe
.classA#idB {
/*style here*/
}
J'ai fait
#idA#idB {
/*style here*/
}
Tous les bons navigateurs actuels prennent en charge cette option, à l'exception de IE 6, la sélection est basée sur le dernier sélecteur de la liste. Ainsi, ".classA.classB" sélectionnera uniquement en fonction de ".classB".
Pour votre cas
li.left.ui-class-selector {
/*style here*/
}
ou
.left.ui-class-selector {
/*style here*/
}
Vous pouvez utiliser ces solutions:
Les règles CSS s'appliquent à toutes les balises ayant les deux classes suivantes:
.left.ui-class-selector {
/*style here*/
}
Les règles CSS s'appliquent à toutes les balises ayant <li>
avec les deux classes suivantes:
li.left.ui-class-selector {
/*style here*/
}
solution jQuery:
$("li.left.ui-class-selector").css("color", "red");
Solution Javascript:
document.querySelector("li.left.ui-class-selector").style.color = "red";