El resultado fue el siguiente:
|  | 
| El menú horizontal funcionando. | 
Asi que manos a la obra. Lo primero es hacer una lista desordenada con html, las cuales tendran las opciones de los menus y submenus.
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8" />
  <meta name="author" content="Fiko" />
  <title>Probando menu horizontal CSS</title>
  <link href="menu.css" type="text/css" rel="stylesheet" />
 </head>
 <body>
  <nav>
   <ul id="menu">
    <li><a href="">Opción 1</a>
        <ul>
         <li><a href="">Opción A</a></li>
         <li><a href="">Opción B</a></li>
         <li class="ultimo"><a href="">Opción C</a></li>
        </ul>
    </li>
    <li><a href="">Opción 2</a>
        <ul>
         <li class="ultimo"><a href="">Opción D</a></li>
        </ul>
    </li>
    <li><a href="">Opción 3</a></li>
    <li><a href="">Opción 4</a></li>
   </ul>
  </nav>
 </body>
</html>
Con este código, nos queda algo asi:
|  | 
| El menú sin estilos CSS. | 
Lo que nos queda es una lista con viñetas, y dentro de un item de la lista hay otra sublista. Lo que falta es configurarlo para que sólo las opciones de la lista principal sean visibles y se vean alineados horizontalmente. También que al pasar el cursor sobre una opción principal, aparescan las secundarias. Esto se hace con código CSS:
/* El color de fondo es solo para hacer más visible el menu */
body{
 background-color:black;
}
/* La etiqueta nav está disponible desde html5 y permite identificar
   las partes de un menu principal. Les doy una medida de ancho y margin:0 auto;
   para que aparesca centrada la lista con el menu 
*/
nav{
 width:1000px;
 height:60px;
 background-color:blue;
 margin:0 auto;
}
/* Es el ul principal, configurado para que no muestre viñetas y con las configuraciones para
   alinear al centro */
#menu{
 list-style:none;
 list-style-position:inside;
 width:800px;
 margin:0 auto;
 display:block;
 text-align:center;
}
/* Es cada opción principal del menu, los ordena horizontalmente con la propiedad float.
   Al tener un ancho fijo, se alinea su contenido al centro y con position:relative; permite
   que al pasar el cursor, aparescan las opciones bajo cada opción principal
*/
#menu li{
 float:left;
 padding:20px;
 width:150px;
 position:relative;
}
/* Es el submenu. Con display none permanece escondido y con position absolute le dice que aparesca
   bajo la opción padre. Con top y right se dice a que altura de la opción debe aparecer.
   Finalmente, con z-index:1; le dice que sobreponga a cualquier otro elemento el submenu.
*/
#menu li ul{
 list-style:none;
 list-style-position:inside;
 display:none;
 position:absolute;
 top:60px;
 left:-41px;
 z-index:1;
}
/* Es la ultima opción del submenu. con border-radius se da los bordes redondeados al final */
#menu .ultimo{
 border-radius:0 0 10px 10px;
 border:1px white solid;
 border-top:none;
}
/* Son las opciones del submenu. */
#menu li ul li{
 background-color:lime;
 padding:10px;
 width:170px;
 border-bottom:1px white dashed;
 border-left:1px white solid;
 border-right:1px white solid;
}
/* Configuración al pasar el mouse ensima de una opción principal */
#menu li:hover{
 background-color:lime;
 border-left:1px white solid;
 border-right:1px white solid;
}
/* Hace visible el ul del submenu al pasar el mouse ensima de una opción principal */
#menu li:hover > ul{
 display:block;
}
/* Configuración de como se veran los enlaces */
#menu a, #menu a:visited{
 color:white;
 text-decoration:none;
 font-family:sans-serif;
 font-weight:bold;
 outline:none;
}
#menu a:hover{
 text-decoration:underline;
}
Ahora se tiene un menu simple y configurado solo con CSS y HTML5, de manera que es ligero y de facil configuración para adaptar a cualquier proyecto.
Links:
 
 










