CAPÍTULO XIX. MENÚS.
Un menú o barra de navegación no es más que una barra de enlaces, por lo que suelen utilizarse las etiquetas <ul> y <li>:
<ul>
<li><a href="...">Inicio</a></li>
<li><a href="...">Noticias</a></li>
<li><a href="...">Contacto</a></li>
Etc.
</ul>
Una vez creados los enlaces, debemos aplicar estilo a nuestra barra de navegación mediante CSS. Una de las cosas que se suele hacer es eliminar los marcadores de la lista y quitar la configuración por defecto del navegador en cuanto a márgenes:
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
Barra de navegación o menú vertical
Para construir una barra de navegación vertical, podemos también dar estilo a los elementos <a> dentro de la lista:
li a {
display: block;
width: 60px;
}
display: block; permite la visualización de los enlaces como elementos de bloque, para que se pueda hacer clic en toda la zona ocupada por el bloque (no sólo sobre el texto) y poder además especificar el ancho (y el relleno, margen, altura, etc. si quieres).
width: 60px; los elementos de bloque ocupan todo el ancho disponible de forma predeterminada, de esta manera queremos especificar un ancho de 60 píxeles.
También se puede establecer la anchura del elemento <ul>, esto producirá el mismo resultado que el ejemplo anterior:ul {
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 60px;
}
li a {
display: block;
}
Ejemplo de menú vertical:
Es interesante añadir el código necesario para que se muestre de alguna manera el enlace que se encuentre activo y que el usuario sepa en qué página se encuentra:
Por otro lado, se puede añadir text-align:center a <li> para centrar los enlaces y border a <ul> para incluir un borde general alrededor del menú, más border-bottom a <li> para añadir bordes a cada uno de los ítems de la lista (a todos menos al último):
li {
display: inline;
}
Barra de navegación o menú horizontal
Una forma de construir una barra de navegación horizontal es especificar los elementos <li> como en línea:
Por defecto, los elementos <li> son de bloque. Con display:inline se eliminan los saltos de línea antes y después de cada elemento de la lista, para mostrarlos en una sola línea.
Otra forma de crear una barra de navegación horizontal es "flotar" los <li>elementos y especificar un diseño para el menú de navegación:
li {
float: left;
}
a {
display: block;
padding: 8px;
background-color: #dddddd;
}
Consejo. Añade el color de fondo a <ul> en lugar de a cada elemento <a> si quieres un color de fondo de ancho completo:
ul {
background-color: #dddddd;
}
Ejemplo de menú horizontal: