Je ne comprends pas pourquoi le code suivant n'a pas le comportement souhaité:
.toggle {
color: red;
}
:not(.list) .toggle {
font-weight:bold;
}
<div class="container">
<a href="#!" class="toggle">Toggle</a>
<ul class="list">
<li><a href="#!">Link 1</a></li>
<li>
<div class="container">
<a href="#!" class="toggle">SubToggle</a>
<ul class="list">
<li><a href="#!">SubLink 1</a></li>
<li>
<a href="#!">SubLink 2</a>
</li>
<li><a href="#!">SubLink 3</a></li>
</ul>
</div>
</li>
<li><a href="#!">Link 3</a></li>
</ul>
</div>
Je pensais que l’utilisation de :not()
aurait pour conséquence d’appliquer "gras" uniquement au lien principal "Basculer", mais au lieu de cela, il appis "gras" à tous les liens rouges. Pourquoi?
Veuillez noter que ce code est imbriqué avec les mêmes noms de classe. Je ne souhaite pas cibler des niveaux spécifiques avec différentes classes CSS, je souhaite cibler des éléments uniquement avec des sélecteurs descendants et d'autres opérateurs
Voici présent aussi un jsFiddle à essayer directement.
Je pense que vous voudrez peut-être ceci:
.toggle {
color: red;
font-weight: bold;
}
div *:not(.list) .toggle {
font-weight: normal;
}
J'ai essayé tant de fois mais c'est la seule façon que je puisse faire:
.toggle {
color: red;
font-weight:bold;
}
.list .toggle{
//override
font-weight:normal;
}
Voici comment utiliser: pas la bonne façon: ajoutez specialToggle
pour les éléments que vous do not want to select
<a href="#!" class="toggle specialToggle">SubToggle</a>
et puis css:
.toggle {
color: red;
}
.toggle:not(.specialToggle) {
font-weight:bold;
}
Si la structure est toujours identique, vous pouvez utiliser le signe plus grand (>), cela signifie que vous n'appliquez le style qu'aux enfants de la classe.
.container > .toggle {
font-weight:bold;
}
Ou si le conteneur ne va pas toujours avoir la même classe, mais est toujours un élément div, vous pouvez utiliser:
div > .toggle {
font-weight:bold;
}
: not ne supporte pas les combinateurs CSS.
Votre seul moyen de faire ceci est:
.toggle {
color: red;
}
.toggle {
font-weight:bold;
}
.list .toggle {
/* Override previous */
}