Menus Simples con CSS y listas
Por: admin | 17 Noviembre 2005 | Ver comentarios |
Existiendo en internet una infinidad de estos ejemplos, me animé a hacer otro más, ¿por qué? pues para explicar un poco que ventajas tienen estos menús con respecto a otros que se hacen con tablas para cada item y javascript para hacer los efectos al pasar el mouse.
En estos ejemplos estoy usando listas desordenadas y CSS básico, para lograr el formato y los efectos al pasar el mouse sobre ellos.
Bueno dejémonos de palabrería y vayamos a la acción, los 2 menús tienen la misma estructura lo único que cambia es el código CSS y el identificador, veamos:
Menu Vertical
<div id="menuv"> <ul> <li><a href="#menuv">Inicio</a></li> <li><a href="#menuv">Comentarios</a></li> <li><a href="#menuv">Noticias</a></li> <li><a href="#menuv">Contacto</a></li> <li><a href="#menuv">Acerca de nosotros</a></li> </ul> </div>
#menuv {
border: 1px solid #ACCFE8;
border-width: 1px 1px 0 1px;
width: 150px;
font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif;
}
#menuv ul, li {
list-style-type: none;
}
#menuv ul {
margin: 0;
padding: 0;
}
#menuv li {
border-bottom: 1px solid #ACCFE8;
}
#menuv a {
text-decoration: none;
color: #3366CC;
background: #F0F7FC;
display: block;
padding: 3px 6px;
width: 138px;
}
#menuv a:hover {
background: #DBEBF6;
}
Ver el ejemplo del menú vertical
Menu Horizontal
<div id="menuh"> <ul> <li><a href="#menuh" id="primero">Inicio</a></li> <li><a href="#menuh">Comentarios</a></li> <li><a href="#menuh">Noticias</a></li> <li><a href="#menuh">Contacto</a></li> <li><a href="#menuh">Acerca de nosotros</a></li> </ul> </div>
#menuh {
font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif;
margin-top: 20px;
}
#menuh ul, li {
list-style-type: none;
}
#menuh ul {
margin: 0;
padding: 0;
}
#menuh li {
float: left;
}
#menuh a {
text-decoration: none;
color: #3366CC;
background: #F0F7FC;
display: block;
padding: 3px 10px;
text-align: center;
border: 1px solid #ACCFE8;
border-width: 1px 1px 1px 0;
}
#menuh a#primero {
border-left: 1px solid #ACCFE8;
}
#menuh a:hover {
background: #DBEBF6;
}
Ver el ejemplo del menú horizontal
Como vieron es sencillísimo podemos jugar con el CSS para cambiar los colores, o talvez añadir algún efecto más, esto se los dejo a su imaginación.
En los ejemplos verán que el código HTML (Estructura) está separado del código CSS (Presentación o formato); esto nos ayuda a modificar rápidamente el código, ahorrar el ancho de banda, y otras cosas que no me acuerdo.
Ventajas
- Poco peso: al ser código simple, ocupa poco espacio, y esto también ayuda a la carga rápida de la página.
- Manejable: se puede cambiar fácilmente los colores y efectos gracias a CSS.
- Simple: el código es sencillo de entender, no se complica tanto como los menús a base de tablas y JavaScript.
- Accesible: el usuario puede usar el menú aunque tenga discapacidad o esté navegando en cualquier dispositivo o navegador.
Desventajas
Ninguna (creo :)), espero sus comentarios.


victor sosa
19 de Noviembre de 2005, 10:12:02 pm
me gusto tu ejemplo, no estoy muy preparado en eso de diseño web pero si soy programador de java, asi que quisiera que me recomendaras un buen libro para el diseño de paginas web o un buen site con documentacion.
Ah y tu blog esta en mis favoritos, estaré esperando otros interesantes como este
victor sosa
20 de Noviembre de 2005, 08:37:27 am
Existe alguna manera de hacer submenues como pasa con javascript
braulio
20 de Noviembre de 2005, 09:56:46 pm
Pues aca en mi ciudad no encuentras muchos libros como esos, por eso es que no puede recomendarte alguno, pero una buena dirección de donde aprendí algunas cosas es http://www.tierradenomadas.com/ para tener conceptos de CSS, JavaScript y DOM.
Sobre los submenus, si se puede hacer también usando estas listas y un mínimo de JavaScript, el ejemplo lo puedes encontrar en:
http://www.alistapart.com/articles/dropdowns
Saludos.
mozilla y ie
2 de Diciembre de 2005, 05:13:38 pm
Hola me parece muy bueno tu tutorial, pero tuve un pequeño incomveniente al hacerlo correr en mozilla y ie, se desconfigura tienes idea de como solucionar ese problema
braulio
2 de Diciembre de 2005, 09:07:46 pm
Mmm. es muy raro, ya que lo probé en Mozilla Firefox (1.07, 1.5) e Internet Explorer 6. Talvez estás copiando algo mal.
Martín
1 de Enero de 2006, 12:14:19 am
Me falta saber cómo hacer para centrar un menú horizontal, no pude todavía…
victor sosa
9 de Enero de 2006, 07:52:30 am
YO le puse esta linea al css para que no me diera problemas cuando pusiera el logo de mi pagina
#menuh
position: relative;
y por cierto como centralizo el menu, alguna idea?
delphino
22 de Enero de 2006, 11:43:17 pm
esta interesante voy a probarlo
camilo_1392
27 de Enero de 2006, 07:37:04 pm
Este menu da problemas en mozilla firefox 1.0 y 1.5 …. en el lado derecho alguien me puede dar la solucion al problema?
Aridni
16 de Junio de 2006, 04:16:58 pm
Hola
Alguien me puede ayudar con un menú horizontal que despliegle sub menus verticales, estoy intentando hacer uno con el ejemplo de aqui pero no encuentro un respuesta aun.
Gracias
rebeca
21 de Junio de 2006, 09:44:59 am
deseo colocar submenus a unmenu horizontal podria indicarme estoy siguiendo el ejemplo anterior .gracias
paulina
22 de Junio de 2006, 06:27:26 pm
me parece bien pero creo le ace falta un poco de explicacion a esto es muy muy bien pero le hace falta explicar mas a fondo o mas detallado pero del reto esto esta perfecto.
paulina
22 de Junio de 2006, 06:28:40 pm
me parece bien pero creo le ace falta un poco de explicacion a esto es muy muy bien pero le hace falta explicar mas a fondo o mas detallado pero del resto esto esta perfecto.
eleuterio Castellanos
29 de Septiembre de 2006, 04:18:10 pm
Gracias por el tutorial, muy conciso y concreto
Carolina
24 de Noviembre de 2006, 11:24:20 am
El menú muy bueno pero, en FIREFOX se desconfugura, uno lo tiene listo en internet explorer y lo ve en el firefox y se descuadra y lo cuadra en firefox y no sirve en internet explorer.
alex
24 de Noviembre de 2006, 09:38:51 pm
Carolina, entiendo tu frustración, pero por lo que veo, el ejemplo que acompaña este artículo funciona bien.
¿Alguna dirección donde pueda ver el problema que comentas?
Carolina
26 de Noviembre de 2006, 03:18:52 pm
Hola Alex, mil gracias por responder y x tu preocupación.
Después de jugar con la márgen izquierda de #menuh y con el padding de #menuh a logré que se viera igual en internet explorer como en mozilla firefox.
Si necesitas que el menú x ejemplo mida 776 px de ancho, ¿Cómo haces? Juegas también con las márgenes y el padding o debes ajustar el texto de cada item? o le puedes dar dentro del css en algún lado la medida para que se ajuste?
Gracias, cordial saludo!
alex
27 de Noviembre de 2006, 09:31:33 pm
Hola Carolina, no soy bueno en css, pero creo que a #menuh deberías ponerle el ancho en 776px, algo así:
#menuh { font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif; margin-top: 20px; width: 776px; overflow: auto; /* para englobar a los elementos flotantes*/ }Carolina
28 de Noviembre de 2006, 11:11:36 pm
Listo Alex, muchas gracias por tu ayuda y respuestas!
Cordial saludo!
manuel
10 de Febrero de 2007, 05:47:52 pm
sensacional… lo que trate de lograr en 8 horas.. , lo hiuce en tres minutos con tu ayuda…, muchas gracias…
Manuel - Santiago de Chile..
Menu de Navegação em CSS « Thunder-Boy
27 de Febrero de 2007, 11:00:23 pm
[…] 1 menu vertical e outro horizontal […]
Xyberneticos.com » Tutoriales sobre Menús de navegación CSS
28 de Febrero de 2007, 10:31:37 pm
[…] Exelente tecnica que agranda los enlaces al pasar el mouse para mí el mas agradable […]
PixMedial — Design & Geek » Tutoriales de menus en CSS
1 de Marzo de 2007, 07:34:04 am
[…] 1 vertical y otro horizontal […]
Raul
13 de Marzo de 2007, 12:39:12 pm
Hola
Estaba viendo el menú de una pagina
http://unidadlocal.com/
pero no pude sacar como se crea el estilo para que se ve así podrían ayudarme
pablo
18 de Abril de 2007, 11:30:51 am
me vino muy bien este menu
pero tendria que decir una desventaja
si se aplica en varias paginas, y luego se quiere modificar la estructura de este menu, ya sea agregar mas botones o quitarlos, habria que camnbiarlos desde todos los html y no desde un solo archivo
si me equivoco, que alguien me diga como
mil gracias
Dario
26 de Abril de 2007, 06:51:42 pm
pablo, no necesariamente, si incluyes el codigo en cada html si tendrás que cambiarlos uno a uno, pero si en el html incluyes:
y en estilo.css pones todo lo “CSS” del ejemplo, asi cuando cambies ahi cambia en todos lo que hagan el link.
Espero haber sido algo claro, saludos!
Pedro
11 de Mayo de 2007, 06:39:17 pm
EXCELLENTE…
Directo al punto y sin mucha palabreria… Asi, es como todo deberia ser…
Muchas gracias
Felicidades en un excelente post
Pedro
AVANZAWEB
31 de Mayo de 2007, 04:19:56 am
Para pablo: puedes escribir el código del menú en un archivo aparte y mediante un include en php lo incluyes en todos los html. De esa forma cuando quieras modificar la estructura sólo deberás modificar un único archivo.
Erick Men
19 de Junio de 2007, 10:36:31 am
Un pregunta he realizado un menu en html y css pero en internet explorer no me lo desplega pero en mozilla firefox si habra alguna variable o que me haga falta para que lo reconozca en ambos navegadores…?
Atentamente,
David
1 de Julio de 2007, 01:18:46 pm
Hola
esta muy bien el tutorial, pero he probado el menu vertical con una pega: si pones más de 5 elementos , al hacer el hover en el navegador (en mi caso IE), se quedan unas lineas que no se muy bien la razón. Podéis probarlo en la página de pruebas que tengo:
http://www.lagerbera.es/pruebas/pruebas2/index.php
¿Alguna idea?
Slds
Navegación elegante con css | La Webdosfera 2.0
22 de Agosto de 2007, 12:29:31 pm
[…] Menu simples con CSS y Listas […]
de2
28 de Agosto de 2007, 06:29:21 am
he utilizado el menu css y no contiene errores. perfect
Osita
30 de Agosto de 2007, 12:24:10 pm
Muchas gracias x el tutorial….. pero no encuentro la forma d incluir menus verticales dentro de los horizontales
Osita
30 de Agosto de 2007, 12:24:50 pm
Por favor alguien me puede ayudar con algun ejemplo
bernardo
5 de Septiembre de 2007, 11:56:24 am
Realice una codificacion usando listas como y , con un boton mostrando y otro ocultando la lista es muy bueno, pero solo funciona en Internet Explorer.
Mis usuarios quiere usar tambien firefox, pero en este navegador al presionar el onClick del boton ‘ver’ o ‘ocultar’ la pagina salta a la pagina siguiente y no permite guardar mas registros que deseo grabar…
necesito ayuda
desde ya muchas gracias
Bernardo
Firenze
18 de Septiembre de 2007, 12:01:35 pm
Es justo lo que andaba buscando, pero… ¿alquien puede decirme cómo centrarlo en la página con un ancho fijo?
Gracias por adelantado…
alexhardcore
19 de Septiembre de 2007, 01:20:41 pm
saludos,a ver si me pueden ayudar,uno: tengo un menu horizontal que cuando se desplega sobre un combobox,queda debajo del combobox y la idea es que los submenus con sus niveles quede por encima de los combos que pagina me recomiendan ( eso me pasa en IE 6 que es donde lo necesito ver),dos: el otro es que tengo otro menu horizontal que no se desplega en IE 6 pero en mozilla si que podria ser, espero alguna respuestas posotiva gracias
Menús CSS | Recursos de la web
15 de Diciembre de 2007, 08:11:47 am
[…] http://www.buayacorp.com/archivos/menus-simples-con-css-y-listas/ […]
th3r0rn
31 de Diciembre de 2007, 12:35:20 am
Muy buen menu, el codigo es bastante entendible me encanto.
saludos!
Alberto
10 de Enero de 2008, 01:01:51 pm
Los menús CSS me parecen muy aconsejables, pero a los horizontales sobre todo les encuentro un problema, cuya solución (si la hay) nadie ha sabido explicarme: en Internet Explorer (versiones 6 y anteriores) aparecen desplazados a la izquierda. ¿Existe algún remedio para esto?
Isabel
8 de Febrero de 2008, 11:40:14 am
Gracias!!!! Busqué muchisimo este tipo de menú, y ninguno funcionaba hasta ahora!!! Gracias!!
vladux
11 de Febrero de 2008, 03:48:58 pm
Mil grax, aun no se en que falle pero no podia visualizar el hover en IE6, pero ya esta muy bueno el tuto, gracias.
salu2!!! desde Guatemala.
Menús CSS « Liamngls
20 de Marzo de 2008, 12:48:46 pm
[…] Menús simples y listas. […]
diego
16 de Mayo de 2008, 01:41:14 pm
pusha tengo un problema para linkiar los botones como lo hago
?¡?¡?¡
soy nuevo en estilos css