Couleur de fond de l'élément de liste de modification CSS avec classe
Je suis en train de changer la couleur d'arrière-plan d'un élément de la liste alors qu'il y a une autre couleur de fond pour les autres éléments de la liste.
C'est ce que j'ai:
<style type="text/css">
ul.nav li
{
display:inline;
padding:1em;
margin:1em;
background-color:blue;
}
.selected
{
background-color:red;
}
</style>
<ul class="nav">
<li>Category 1</li>
<li>Category 2</li>
<li class="selected">Category 3</li>
<li>Category 4</li>
</ul>
Ce que ce produit est de tous les éléments de la liste avec un fond bleu (à partir de la "valeur liquidative"), comme s'il n'y avait pas de "sélection" de la classe. Cependant, quand je prends la couleur de fond de la "valeur liquidative" de la classe, j'ai le fond rouge de l'élément de liste avec la "sélection" de la classe.
Je voudrais utiliser le "sélectionné" classe pour les autres éléments de la page (c'est à dire d'autres éléments de liste, de la vrd, etc.).
Comment puis-je résoudre ce problème?
Vous en remercie d'avance.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
C'est une question de sélecteur de spécificité. (Le sélecteur
.selected
est moins spécifique queul.nav li
.)De fixer, utilisez autant de la spécificité de la règle fondamentale, comme dans l'original:
Vous pouvez également envisager nixing la
ul
moins il y aura d'autres.nav
s. Donc:C'est un peu plus propre, moins de frappe, et moins de bits.
L'ul.nav li est plus restrictive et donc prennent le dessus, essayez ceci:
Démo
Si vous voulez que ce soit mis en évidence en fonction de la page de votre utilisateur est sur, puis le faire:
Source
Scénario:
J'ai un menu de navigation de ce genre. Remarque: Le Lien
<a> is child of list item <li>
. Je voulais changer l'arrière-plan de l'élément de liste sélectionné et de supprimer la couleur d'arrière-plan non sélectionnés élément de la liste.J'ai essayé d'ajouter une classe .active dans l'élément de la liste à l'aide de jQuery, mais il n'a pas de travail
Solution:
Fondamentalement, l'aide .classe active de changer la couleur d'arrière-plan de l'élément de la liste ne fonctionne pas. J'ai donc changé le nom de classe css .active "nav li.active un" donc, en utilisant le même javascript, il va ajouter de la .classe active dans l'élément de liste sélectionné. Maintenant, si l'élément de la liste
<li>
.classe active puis css va changer la couleur d'arrière-plan de l'enfant de l'élément de liste<a>.
1) Vous pouvez utiliser le
!important
règle, comme ceci:Voir http://www.w3.org/TR/CSS2/cascade.html#important-rules pour plus d'info.
2) Dans votre exemple, vous pouvez également obtenir le rouge fond en utilisant
ul.nav li.selected
au lieu de simplement.selected
. Cela rend le sélecteur de plus en plus spécifiques.Voir http://www.w3.org/TR/CSS2/cascade.html#specificity pour plus d'info.