Yo en su día aprendí (no sé si erróneamente) que todo lo que se pudiera con css no se haga en javaScript, el caso es que ahora estoy haciendo un menú con tres niveles de navegación en el que se van desplegando los diferentes submenus según estás en la sección seleccionada.
Lo estoy haciendo sin usar javaScript solo con css. Esto que muestro abajo es solo una porción de código de uno de los submenus:
Código CSS:
Ver original
.page-taxonomy-term-212 #menu-cortacesped > ul, .page-taxonomy-term-204 #menu-cortacesped #menu-cortacesped-hombre-pie ul, .page-taxonomy-term-204 #menu-cortacesped > ul, .page-taxonomy-term-170 #menu-cortacesped > ul, .page-taxonomy-term-170 #menu-cortacesped #menu-cortacesped-hombre-pie ul, .page-taxonomy-term-172 #menu-cortacesped > ul, .page-taxonomy-term-172 #menu-cortacesped #menu-cortacesped-hombre-pie ul, .page-taxonomy-term-171 #menu-cortacesped > ul, .page-taxonomy-term-171 #menu-cortacesped #menu-cortacesped-hombre-pie ul, .page-taxonomy-term-173 #menu-cortacesped > ul, .page-taxonomy-term-173 #menu-cortacesped #menu-cortacesped-hombre-pie ul, .page-taxonomy-term-205 #menu-cortacesped #menu-cortacesped-hombre-sentado ul, .page-taxonomy-term-205 #menu-cortacesped > ul, .page-taxonomy-term-175 #menu-cortacesped > ul, .page-taxonomy-term-175 #menu-cortacesped #menu-cortacesped-hombre-sentado ul, .page-taxonomy-term-174 #menu-cortacesped > ul, .page-taxonomy-term-174 #menu-cortacesped #menu-cortacesped-hombre-sentado ul, .page-taxonomy-term-176 #menu-cortacesped > ul, .page-taxonomy-term-176 #menu-cortacesped #menu-cortacesped-hombre-sentado ul { display: block; }
Este código habría que multiplicarlo más o menos por 10 (de los otros 10 submenus) , más luego añadirle otros tantos para los li y las a cuando son activas y tal y tal.
No sé si hay manera de simplificar este css, pero la pregunta que os hago es otra:
En un caso como éste que se crea un código tan largo ¿no me merece la pena usar 4 lineas de javaScript cuando el resultado sería el mismo? y ¿cuáles son los inconvenientes de usar un método u otro?
Saludos y espero no haberme extendido demasiado con la pregunta.
Muchas gracias a todos.