Listado completo de tutoriales

29 - Creación de un menú horizontal con una lista.


Otro estilo de menú muy común es donde las opciones se encuentran una al lado de otra.

Utilizaremos una lista no ordenada con una serie de item que contienen los enlaces.

Como elementos de una lista se muestran uno debajo de otro debemos inicializar la propiedad float con el valor left para que los item se ubiquen uno al lado de otro.

Veamos el código para la implementación de un menú horizontal:

<!DOCTYPE html>
<html>
<head>
  <title>Problema</title>
  <meta charset="UTF-8">
  <link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<ul id="menuhorizontal">
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.yahoo.com">Yahoo</a></li>
<li><a href="http://www.bing.com">Bing</a></li>
<li><a href="http://www.ask.com">Ask</a></li>
</ul>
</body>
</html>

El archivo de estilos es:

#menuhorizontal {
  margin:0;
  padding:0;
  list-style-type:none;
}
#menuhorizontal a {
  width:100px;
  text-decoration:none;
  text-align:center;
  color:#ff0000;
  background-color:#f7f8e8;
  padding:3px 5px;
  border-right:1px solid blue;
  display:block;
}

#menuhorizontal li {
  float:left;
}

#menuhorizontal a:hover {
  background-color:#336699;
}
menu horizontal

Inicializamos el margin y padding con cero y el estilo de la lista con none para que no aparezcan los círculos de cada item:

#menuhorizontal {
  margin:0;
  padding:0;
  list-style-type:none;
}

En los enlaces del menú inicializamos la propiedad display con el valor block para que el enlace tenga efecto en todo el rectángulo:

#menuhorizontal a {
  width:100px;
  text-decoration:none;
  text-align:center;
  color:#ff0000;
  background-color:#f7f8e8;
  padding:3px 5px;
  border-right:1px solid blue;
  display:block;
}

Para que los enlaces aparezcan uno al lado de otro inicializamos la propiedad float con el valor left:

#menuhorizontal li {
  float:left;
}

Finalmente la pseudoclase para indicar el color de fondo del enlace cuando la flecha del mouse pasa por encima es:

#menuhorizontal a:hover {
  background-color:#336699;
}

Retornar