Ho un menu di navigazione gerarchico nella mia barra laterale che utilizza elenchi nidificati (tag <ul> e <li>). Sto usando un tema predefinito che ha già stili per gli elementi dell'elenco, ma desidero modificare lo stile per gli elementi di primo livello ma NON farlo applicare agli elementi secondari. Esiste un modo semplice per applicare gli stili al tag dell'elemento dell'elenco di primo livello SENZA che questi stili si sovrappongano agli elementi dell'elenco figli? Capisco che posso aggiungere esplicitamente stili di sovrascrittura agli elementi secondari, ma mi piacerebbe davvero evitare di dover duplicare tutto quel codice di stile se c'è un modo semplice per dire "applica questi stili a questa classe e NON sovrapporre fino agli elementi figli ". Ecco l'html che sto usando:
<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>
Quindi il CSS ha stili per #sidebar ule #sidebar ul ligià, ma mi piacerebbe aggiungere altri stili a #sidebar .top-level-navquello NON ricadono nei suoi sotto-figli. C'è un modo per farlo semplicemente o ho bisogno di riorganizzare tutti gli stili in modo che gli stili che erano #sidebar ulora siano specifici per certe classi?