18. Menú horizontal 2 niveles
<ul id="navbar"> <!--Lista que define los elementos principales que se muestran siempre--> <li><a href="http://aprenderaprogramar.com">Libros</a> <!--Item principal de menú--> <ul> <!--Lista que define subitems de menú que se mostrarán sólo al posicionar el ratón sobre el item principal--> <li><a href="http://aprenderaprogramar.com">Aprender a programar desde cero</a></li> <!--SubItem de menú--> <li><a href="http://aprenderaprogramar.com">Creación y administración web con Joomla</a></li> <!--SubItem de menú--> <li><a href="http://aprenderaprogramar.com">Lenguaje de programación Java</a></li> <!--SubItem de menú--> </ul> </li> <li><a href="http://aprenderaprogramar.com">Divulgación</a> <!--Item principal de menú--> <ul> <!--Lista que define subitems de menú que se mostrarán sólo al posicionar el ratón sobre el item principal--> <li><a href="http://aprenderaprogramar.com">Los 100 trucos de CSS</a></li> <!--SubItem de menú--> </ul> </li> <li><a href="http://aprenderaprogramar.com">Preguntas frecuentes</a></li><!--Item principal de menú--> <li><a href="http://aprenderaprogramar.com">Humor</a> <!--Item principal de menú--> <ul> <!--Lista que define subitems de menú que se mostrarán sólo al posicionar el ratón sobre el item principal--> <li><a href="http://aprenderaprogramar.com">Humor informático</a></li> <!--SubItem de menú--> <li><a href="http://aprenderaprogramar.com">Humor bases de datos</a></li> <!--SubItem de menú--> <li><a href="http://aprenderaprogramar.com">Humor programación</a></li> <!--SubItem de menú--> <li><a href="http://aprenderaprogramar.com">Humor universidad</a></li> <!--SubItem de menú--> </ul> </li> </ul>
CSS
/* Curso CSS estilos aprenderaprogramar.com*/
body {font: 92.5%/1.9 Arial, Helvetica, sans-serif;background-color: #eee; }
h2 {margin:0;}
/*Caja contenedora*/
#wrap { font-size: 1.8em; width: 520px; padding: 30px;
margin: 0 auto; /*Da lugar al centrado de la caja en el elemento superior body*/
background-color: #fff;}
/* Estilos que crean el menú desplegable */
/*Eliminamos padding y margin que introducen navegadores por defecto en listas*/
#navbar { padding:0; margin:0; }
/*Elementos items principales de menú que se muestran siempre*/
#navbar li { list-style: none; float: left; margin:10px;}
#navbar li a {
display: block; /* Usamos display block para poder aplicar propiedades de caja a links */
padding: 3px 8px; background-color: #5e8ce9; color: #fff;
border-radius: 10px; border: 4px double #fff;
text-decoration: none; }
/*Listas de subitems de menú*/
#navbar li ul {
display: none; /*La lista inicialmente no se muestra debido a display:none; */
background-color: #69f;
border-radius: 5px; border: 1px dotted #fff;}
#navbar li:hover ul {
font-size: 18px;
display: block; /*Al situar el cursor sobre el item la lista de subitems pasa de display none a display block y se muestra*/
position: absolute; /*Al desplegarse el submenú no ocupa espacio y no desplaza a otros elementos gracias a que establecemos position absolute*/
margin: 0; padding: 0; /*Anulamos margin y padding que por defecto introducen navegadores*/
}
#navbar li:hover li { float: none; } /*Anulamos el float left que define el elemento padre para que los subitems se muestren en vertical */
/*Creamos la apariencia de los subitems de menú, color de fondo, borde inferior, color de texto*/
#navbar li:hover li a { background-color: #69f; border-bottom: 1px solid #fff; color: #000; }
/*Creamos el efecto de cambio de color y aspecto cuando ponemos el puntero del ratón sobre un subitem de menú*/
#navbar li li a:hover { background-color: #8db3ff; }
.limpiador{padding:0; border-style:none; clear:both; } /*Forzamos a la caja a mostrarse aún conteniendo elementos flotantes*/