Anuncia aquí

Menus Simples con CSS y listas

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

HTML:

<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>
 
CSS:

#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

HTML:

<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>
 
CSS:

#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.

Archivos relacionados

Esta entrada fue publicada en CSS, Diseño

64 Comentarios

  1. 1 victor sosa (19 de noviembre de 2005, 10:12:02 pm) http://vnsjava.blogspot.com

    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 :-)

  2. 2 victor sosa (20 de noviembre de 2005, 08:37:27 am) http://vnsjava.blogspot.com

    Existe alguna manera de hacer submenues como pasa con javascript

  3. 3 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.

  4. 4 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

  5. 5 braulio (2 de diciembre de 2005, 09:07:46 pm) http://www.buayacorp.com

    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.

  6. 6 Martín (1 de enero de 2006, 12:14:19 am) http://a

    Me falta saber cómo hacer para centrar un menú horizontal, no pude todavía...

  7. 7 victor sosa (9 de enero de 2006, 07:52:30 am) http://vnsjava.blogspot.com

    YO le puse esta linea al css para que no me diera problemas cuando pusiera el logo de mi pagina :D

    #menuh
    position: relative;

    y por cierto como centralizo el menu, alguna idea?

  8. 8 delphino (22 de enero de 2006, 11:43:17 pm) http://www.delphino.com

    esta interesante voy a probarlo

  9. 9 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?

  10. 10 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 :)

  11. 11 rebeca (21 de junio de 2006, 09:44:59 am)

    deseo colocar submenus a unmenu horizontal podria indicarme estoy siguiendo el ejemplo anterior .gracias

  12. 12 paulina (22 de junio de 2006, 06:27:26 pm) http://www.siankaantours.org

    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.

  13. 13 paulina (22 de junio de 2006, 06:28:40 pm) http://www.siankaantours.org

    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.

  14. 14 eleuterio Castellanos (29 de septiembre de 2006, 04:18:10 pm)

    Gracias por el tutorial, muy conciso y concreto

  15. 15 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.

  16. 16 alex (24 de noviembre de 2006, 09:38:51 pm) http://www.buayacorp.com

    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?

  17. 17 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!

  18. 18 alex (27 de noviembre de 2006, 09:31:33 pm) http://www.buayacorp.com

    Hola Carolina, no soy bueno en css, pero creo que a #menuh deberías ponerle el ancho en 776px, algo así:

    css:
    #menuh {
            font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif;
            margin-top: 20px;
            width: 776px;
            overflow: auto; /* para englobar a los elementos flotantes*/
    }

  19. 19 Carolina (28 de noviembre de 2006, 11:11:36 pm)

    Listo Alex, muchas gracias por tu ayuda y respuestas!
    Cordial saludo!

  20. 20 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..

  21. 21 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

  22. 22 pablo (18 de abril de 2007, 11:30:51 am) http://blog.pabloscillia.com.ar

    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

  23. 23 Dario (26 de abril de 2007, 06:51:42 pm) http://santexstandard.com

    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!

  24. 24 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

  25. 25 AVANZAWEB (31 de mayo de 2007, 04:19:56 am) http://avanzaweb.blogspot.com

    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.

  26. 26 Erick Men (19 de junio de 2007, 10:36:31 am) http://www.aceiba.com.gt

    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,

  27. 27 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

  28. 28 de2 (28 de agosto de 2007, 06:29:21 am) http://http:www.bodegasdevino.es

    he utilizado el menu css y no contiene errores. perfect

  29. 29 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

  30. 30 Osita (30 de agosto de 2007, 12:24:50 pm)

    Por favor alguien me puede ayudar con algun ejemplo

  31. 31 bernardo (5 de septiembre de 2007, 11:56:24 am) http://localhost

    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

  32. 32 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...

  33. 33 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

  34. 34 th3r0rn (31 de diciembre de 2007, 12:35:20 am) http://www.imgeek.net

    Muy buen menu, el codigo es bastante entendible me encanto.
    saludos! :)

  35. 35 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?

  36. 36 Isabel (8 de febrero de 2008, 11:40:14 am) http://myopenstudio.blogspot.com

    Gracias!!!! Busqué muchisimo este tipo de menú, y ninguno funcionaba hasta ahora!!! Gracias!! :D

  37. 37 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.

  38. 38 diego (16 de mayo de 2008, 01:41:14 pm) http://www.masajedeportivo.cl

    pusha tengo un problema para linkiar los botones como lo hago
    ?¡?¡?¡
    soy nuevo en estilos css

  39. 39 JaviCN (15 de agosto de 2008, 04:58:00 am)

    como hago para poner 2 menus horizontales en una pagina?

  40. 40 JaviCN (15 de agosto de 2008, 05:06:41 am)

    perdon quise decir verticales no horizontales

  41. 41 julio (11 de septiembre de 2008, 05:43:21 pm) http://www.usuarios.lycos.es/julioisaac/sakura.html

    ami pues no me sale como el ejemplo, al principio en el ejemplo ce ve muy original pero ya lo puce y no sale como el ejemplo.
    Agadeseria que me ayudaran x favor
    esk solo me salen las letras sin el cuadro y eso osea como si fueran enlazes en forma de lista

  42. 42 julio (11 de septiembre de 2008, 05:48:43 pm) http://www.usuarios.lycos.es/julioisaac/sakura.html

    porfa ayuda este menu esta chido y me gustaria tenerlo

  43. 43 http://www.usuarios.lycos.es/julioisaac/sakura.html (12 de septiembre de 2008, 10:12:04 pm) http://www.usuarios.lycos.es/julioisaac/sakura.html

    entren a mi pagina todo sobre sakura card captor

  44. 44 black360 (8 de octubre de 2008, 12:25:40 pm) http://black360.blogspot.com/

    me quedo muy guapo el menu horizontal fijense
    http://black360.blogspot.com/

  45. 45 Adrian (8 de octubre de 2008, 10:21:17 pm) http://www.mercadosanrafael.com.ar

    Muy buen tutorial, no contiene ningún error, ni en firefox ni en ie. el problema que tienen es en el código html table td div....

    Una pregunta: ¿como separo los botones del menú horizontal? las cajitas
    no encuentro la instrucción, seguro que es fácil pero no lo se.-

    Mil gracias

  46. 46 Gerardo (9 de octubre de 2008, 10:38:32 am) http://www.gerardo-flores.com

    Excelente tutorial, funciona bien en varios en firefox e IE gracias saludos cordiales

  47. 47 juan perez (4 de junio de 2009, 07:20:00 pm)

    felicidades ere un buen diseñador puedo asegurar que es el diseño mas fasil que he vicitado sigue adelante seras reconocido en todo el mundo espero

  48. 48 zayra (25 de junio de 2009, 09:38:14 am) http://www.google.com

    hola nesesito ayuda para elaborar un menu en SharpDevelop donde despliegue las opciones ayudeme plis se lo voy a gradecer

  49. 49 Romer (13 de agosto de 2009, 08:10:34 am) http://venezuliano.blogspot.com

    Fantastico ejemplos pero yo soy novato en esto. ¿podrían decirme donde se colocan estos codigos en blogger? - en caso de que se pueda. tengo una plantilla beta y no veo las etiquetas que se muedstran ahí.
    Mil gracias de antemano.

  50. 50 auraham (26 de septiembre de 2009, 10:03:24 pm) http://auraham.wordpress.com

    Oye muchas gracias por tu codigo, lo usare para un proyecto que tengo en el trabajo...me ha sido de mucha utilidad

  51. 51 braulio (26 de septiembre de 2009, 10:12:10 pm) http://www.buayacorp.com

    Gracias por visitarnos auraham

  52. 52 Jose JC (15 de octubre de 2009, 09:38:13 am)

    Muy buen tutorial pero en cuanto menu horizontal tengo cierta duda y es observen como se deforma al cambiar el tamaño del browser, en realidad no debria deformarse sino cortar y mostrar de acuerdo al tamañod del browser

  53. 53 portuhermana (11 de diciembre de 2009, 02:00:53 pm) http://vikingo.mihost.eu

    holas ps encontre un aporte

    CSS:
    #menuv {
            border: 1px solid #ACCFE8;
            border-width: 1px 1px 0 1px;
            width: 150px;
           height: auto;
            font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif;
    }

    ps eso ara que funque bien en google crom o mozila salu2. "height: auto;"

  54. 54 shafa (18 de febrero de 2010, 11:41:15 am)

    hey buen aporte brother gracias me sirvio mucho, tengo una pregunta para todos los que me quieran ayudar yo cree mi pagina web en http://www.000webhost.com me registre y todo bien pero cuando me quiero conectar tengo problemas para construir mi web en esa pagina alguien para ayudarme me pueden enviar correos gracias

  55. 55 jc (11 de junio de 2010, 06:09:36 am)

    Estoy probando tu menu vertical y al ponerlo en el blogger se desplaza el fondo a la izquierda y se come parte de las letras de los enlaces. ¿A que se debe? Esto me pasa tanto en el explorer commo en firefox

  56. 56 pablo (18 de marzo de 2011, 05:05:15 am) http://notengo

    a mi me pasa que me pierdo con esto del css :(

    he encontrado una web donde creas muy buenos menus css en unos pocos clics aqui la teneis Generador de menús en CSS

  57. 57 ChicoSoftware (17 de septiembre de 2011, 03:34:23 pm) http://ratablog.org

    muchas gracias has contribuido en la creacion de mi tema, no olvides visitar mi blog!

  58. 58 FutbolRapidoLibres (30 de octubre de 2011, 10:43:47 pm) http://futbolrapidolibres.foroactivo.mx/

    Como puedo colocar en mi pagina esta seccion de comentarios disculpen la pregunta aki pero como utilize tambien esta informacion pues se me ocurrio preguntar aki mismo gracias por su ayuda

  59. 59 decoracion con globo (5 de noviembre de 2011, 01:13:16 pm) http://decoracionconglobos.org

    Tengo un menu horizontal, estaba buscando la manera de ponerlo vertical, pero me gusto el que tienes aqui. Gracias

    Saludos

  60. 60 tony (9 de noviembre de 2011, 09:08:10 am)

    Mil gracias super útil

  61. 61 Eric | asian store (16 de noviembre de 2011, 04:12:19 am) http://myasian-store.com/

    Muy bueno funciona perfecto el menu vertical, muchas gracias.

  62. 62 Claudio (25 de noviembre de 2011, 11:45:53 pm) http://www.balestraydiaz.com

    Buen artículo, me sirvió mucho la info ya que estoy aprendiendo a diseñar páginas. Muy sencillo y elegante el método gracias.

  63. 63 Mauro (28 de noviembre de 2011, 09:46:00 pm)

    Viendo que no se como usar las etiquetas para comentar les paso un link para que vean como lo solucione.

    https://skydrive.live.com/?cid=d0cb0ae145c54d63#!/?cid=d0cb0ae145c54d63&sc=photos&uc=1&id=D0CB0AE145C54D63%21162

    Saludos

  64. 64 Santiago Palacios (27 de diciembre de 2011, 08:13:28 am) http://www.mpsoftware.com.ar

    Excelente menú cumple con lo que considero apropiado para un sitio web sencillo (Velocidad, simplicidad, robustez).

    Saludos! Muchas Gracias

7 Trackbacks

  1. Por Menu de Navegação em CSS « Thunder-Boy el 27 febrero 2007 a las 11:00 pm

    [...] 1 menu vertical e outro horizontal [...]

  2. [...] Exelente tecnica que agranda los enlaces al pasar el mouse para mí el mas agradable [...]

  3. [...] 1 vertical y otro horizontal [...]

  4. Por Navegación elegante con css | La Webdosfera 2.0 el 22 agosto 2007 a las 12:29 pm

    [...] Menu simples con CSS y Listas [...]

  5. Por Menús CSS | Recursos de la web el 15 diciembre 2007 a las 8:11 am
  6. Por Menús CSS « Liamngls el 20 marzo 2008 a las 12:48 pm

    [...] Menús simples y listas. [...]

  7. [...] 1 vertical y otro horizontal [...]

Publicar un Comentario

Tu email nunca será publicado o compartido. Los campos requeridos están marcados con un *

*
*

Puedes usar estas etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>