He visto muchos menús desplegables por internet.. muy chulos, pero muy complicados para mi gusto, asi que voy a explicar como hacer un menu horizontal desplegable sencillito y funcional, tán solo con html y css.
Lo primero es la estructura, para ella usaré una lista, asi queda todo bien recogidito:
<ul id="menu-horizontal"> <li><a href="#" title="Texto">Texto</a></li> <li><a href="#" title="Texto">Texto</a></li> <li><a href="#" title="Texto">Texto</a> <ul> <li><a href="#" title="Texto">Texto</a></li> <li><a href="#" title="Texto">Texto</a></li> </ul> </li> <li><a href="#" title="Texto">Texto</a></li> <li><a href="#" title="Texto">Texto</a></li> </ul>
La cosa es así: el <ul> es el menú en sí, cada <li> es un botón del menú y el <ul> dentro del <li> es desplegable de ese botón. ¿Me se entiende? xD
Vale, ahora voy a aplicarle un poco de estilo para que quede el menu en horizontal, ya que por defecto las listas son verticales. Se consigue fácil, agregandole a los elementos de la lista el atributo de flotante:
ul#menu-horizontal li {
float: left;
display: inline;
position: relative;
}
Y ahora que es horizontal, voy a ocultar el submenú, ya que no quiero que aparezca aún, solo se tiene que mostrar cuando pase el ratón por encima del botón que tiene submenu. El css en cuestión:
ul#menu-horizontal ul {
display: none;
position: relative;
top: 24;
left:0;
margin:0;
padding:0;
background:#FFFFFF;
}
ul#menu-horizontal ul li {
display: block !important;
}
ul#menu-horizontal li:hover ul{
display: none;
}
ul#menu-horizontal li:hover ul{
display: block;
}
Y.. perfecto! Ya funciona nuestro menu desplegable y horizontal, pero nos queda un paso. Hacerlo bonito. Para ello aplicamos un poco de estilo por aquí..
#menu-horizontal {
width:500px;
margin:0 auto;
}
#menu-horizontal li {
margin:0 1px;
width:98px;
min-height:19px;
text-align:center;
background:#BBB;
list-style:none;
padding:2px 0;
}
/* y otro poquito por aquí.. */
#menu-horizontal li:hover {
background:#C5014F;
}
#menu-horizontal li a {
font:bold 11px Arial, Helvetica, sans-serif;
color:#FFF;
text-decoration:none;
}
#menu-horizontal li ul li{
float:none;
width:98px;
margin:1px 0;
}
Y.. apañao.
No es para decir: Uy que bruto que bonito que está, pero todo es empezar
Actualizado 29-01-2009: He modificado las propiedades de #menu-horizontal ul para que funcione correctamente en IE7 gracias a los comentarios de José Rico y Ring
Twittea esto Guardalo en Delicious Compartelo en Facebook









abril 11th, 2010 at 3:24 am
Hola,felicidades muy buen tutorial, nuevamente preguntando como puedo agregar un sub-submenu, ya he insertado el codigo correspondiente, una ul dentro de li del sub menu, pero no le logrado poner el css correspondiente para que se ejecute, unicamente se agrega al submenu, te explico, dentro del menu tengo una etiqueta turismo, el submenu despliega hoteles, restaurantes, museos etc. lo que pretendo hacer es que al pasar el maouse al submenu hotel se me despliegue otro submenu, te agradecere mucho tu atencion a mi duda, de antemano gracias por tu tiempo y conocimientos
junio 29th, 2010 at 21:57 pm
Saludos desde USA cress que podrias ayudarme a realizar un sencillo buscador dentro de mi mi website la idea que desde este buscador consigas paginas de articulos o ejercicios.
Gracias por tu ayuda
julio 30th, 2010 at 18:21 pm
gracias por el tutorial pero lo probe en IE8 y no sirve
puedes ayudarme por favor??