Eu tenho um menu de navegação hierárquico em minha barra lateral que usa listas aninhadas (tags <ul> e <li>). Estou usando um tema predefinido que já tem estilos para itens de lista, mas quero alterar o estilo para os itens de nível superior, mas NÃO o aplico aos subitens. Existe uma maneira fácil de aplicar estilos à tag de item de lista de nível superior SEM ter esses estilos em cascata para seus itens de lista filhos? Eu entendo que posso adicionar explicitamente estilos de substituição aos subitens, mas eu realmente gostaria de evitar ter que duplicar todo o código de estilo se houver uma maneira fácil de apenas dizer "aplique esses estilos a esta classe e NÃO faça cascata até quaisquer elementos filhos ". Aqui está o html que estou 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>
Portanto, o CSS tem estilos para #sidebar ul
e #sidebar ul li
já, mas eu gostaria de adicionar estilos adicionais para #sidebar .top-level-nav
que NÃO sejam cascateados para seus sub-filhos. Existe alguma maneira de fazer isso de forma simples ou preciso reorganizar todos os estilos para que os estilos que estavam #sidebar ul
ativados agora sejam específicos para certas classes?