CSS en la lista anidada: evite el estilo de ambas listas
Tengo la siguiente estructura de lista anidada:
HTML:
<div id="my_nested_list">
<ul>
<li>
Item label
<ul>
<li>Subitem 1</li>
<li>Subitem 2</li>
<li>Subitem 3</li>
</ul>
<li>
<li>...</li>
</ul>
</div>
CSS:
#my_nested_list>ul {
/* first level list */
}
#my_nested_list>ul>li {
/* first level items */
}
#my_nested_list>ul>li ul {
/* second level list */
}
#my_nested_list>ul>li ul>li {
/* second level items */
}
Mi problema es que con el selector de espacio en lugar de>
, las reglas del primer nivel se aplican en el segundo nivel. Pero necesito soporte ie6, que no admite>
. Por lo tanto, tengo que usar el espacio.
Hasta ahora tengo 2 soluciones:
put clases en cada ul y li, y use#my_nested_list ul.firstlevel li.firstlevel
utilizar#my_nested_list ul li
y#my_nested_list ul li ul li
para reescribir todas las reglas de primer nivel no deseadas.¿Tienes mejores ideas?