J'ai un menu de navigation hiérarchique dans ma barre latérale qui utilise des listes imbriquées (balises <ul> et <li>). J'utilise un thème prédéfini qui a déjà des styles pour les éléments de liste, mais je souhaite modifier le style des éléments de niveau supérieur mais PAS l'appliquer aux sous-éléments. Existe-t-il un moyen simple d'appliquer des styles à la balise d'élément de liste de niveau supérieur SANS avoir ces styles en cascade jusqu'à ses éléments de liste enfants? Je comprends que je peux explicitement ajouter des styles de remplacement aux sous-éléments, mais j'aimerais vraiment éviter d'avoir à dupliquer tout ce code de style s'il existe un moyen simple de dire simplement "appliquer ces styles à cette classe et NE PAS cascade les jusqu'à tous les éléments enfants ". Voici le html que j'utilise:
<ul id="sidebar">
<li class="top-level-nav">
<span>HEADING 1</span>
<ul>
<li>sub-heading A</li>
<li>sub-heading B</li>
</ul>
</li>
<li class="top-level-nav">
<span>HEADING 2</span>
<ul>
<li>sub-heading A</li>
<li>sub-heading B</li>
</ul>
</li>
</ul>
Donc, le CSS a des styles pour #sidebar ulet #sidebar ul lidéjà, mais j'aimerais ajouter des styles supplémentaires #sidebar .top-level-navqui ne se répercutent PAS sur ses sous-enfants. Existe-t-il un moyen de le faire simplement ou dois-je réorganiser tous les styles pour que les styles qui étaient activés #sidebar ulsoient désormais spécifiques à certaines classes?