</ol>
Nos da como resultado:
1.
item
2.
item
3.
item
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
Nos queda:
item
item
item
Ahora la gran pregunta, Por qu &%$#$@/ tengo que usar eso para hacer mi
men?
Sencillo, porque un men bsicamente ES una lista, no es un parrafo, ni un
titulo, es una lista de vnculos. Y como lista que s, lo mas correcto es que est
estructurada en el HTML como tal.
Pero no hay de que preocuparse, ya que el CSS nos permite cambiar
completamente el aspecto de la lista, para convertirla en el bonito men que
queremos, sin que deje de ser lista. Pero primero, veamos en qu consisten
los pre-formatos que trae de por s una lista.
Las listas se renderizan en el navegador con ciertas caractersticas, como el
margen / relleno (interpretado de diferente manera en los distintos
navegadores) de la lista completa, el margen / relleno (idem) de cada item de la
lista y las vietas, ademas de un salto de lnea para cada item por ser
elementos de bloque.
Lnea naranja delimita el margen / relleno de la lista, lnea verde el bloque de cada item.
Ahora vamos con los margenes y el relleno. Dado que los distintos
navegadores pueden interpretar el margen y el relleno de diferente forma, hay
que especificar ambos valores con los que queramos darle a nuestra lista,
aunque parezca que el que trae la lista de por s, sea el adecuado para lo que
queremos, es mejor especificarlo en el CSS.
#navi {
list-style:none;
margin:0;
padding:0;
}
//luego a los elementos de la lista...
#navi li {
margin:2px;
padding:2px;
border:1px solid#CCCCCC;
}
#navi li {
margin:2px;
padding:2px;
border:1px solid #CCCCCC;
float:left; //para eliminar el comportamiento de
elemento de bloque(salto de linea)
}
Y el resultado:
Lista horizontal.
bloque.
width:100px;
padding:4px 0;
text-decoration:none;
text-align:center;
font-size:11px;
color:#FFFFFF;
background-color:#000000;
}
//Ahora vamos con el hover:
#navi li a:hover {
color:#99CC00;
background-color:#003366;
}
As obtenemos fcilmente un men, obviamente muy sencillo:
Un men bsico.
//Agrego un borde
ancho a la izquierda
}
#navi li a:hover {
color:#99CC00;
background-color:#003366;
border-left-color:#99CC00; //Luego le cambio el
color al borde en el evento hover.
}
Mejorando el aspecto.
Experimentando
Para este ejemplo, use una imagen de fondo, para el evento hover, con un
pequeo truco, veamos el codigo:
ul li a {
display:block;
width:100px;
padding:40px 10px 4px 10px;
text-decoration:none;
text-align:right;
font-size:11px;
color:#666666;
background-image:url(images/boton1.png);
solo se ve la parte de arriba de la imagen
border:1px solid #666666;
}
//Aqui
ul li a:hover {
color:#000000;
background-position:bottom; //Aqui muestro la parte
de abajo de la imagen
}
Para hacer los botones altos, le he agregado 40px de relleno superior, de esta
forma agrando el boton dejando el texto abajo, le he cambiado la alineacin a
la derecha, y, como se puede ver en el cdigo, la imagen de fondo la he puesto
en el vnculo directamente, no en el evento hover, y en este solo le cambio la
posicin. El detalle es que la imagen es el doble de tamao que el botn:
Por qu hago esto? La idea es cargar una sola imagen, y hacerlo al cargar la
pagina, si pedimos que en el evento hover se cargue una imagen aparte, esta
solo sera cargada al poner el cursor encima del botn, en conexiones lentas,
suele haber un tiempo de descarga de la imagen que supera a la acin del
usuario, lo que ocasiona que nunca vea la imagen del evento hover. Con este
mtodo, nos aseguramos que la imagen es cargada desde el principio y no hay
espera.
Otro ejemplo
Solo imagenes.
<ul>
<li><a href="#" id="inicio"><span>inicio</span></a></li>
<li><a href="#" id="acerca"><span>acerca
de</span></a></li>
<li><a href="#"
id="contacto"><span>contactos</span></a></li>
</ul>
Agregamos un identificador nico a cada vnculo, para poder colocar la imagen
correspondiente. Adicionalmente le he puesto etiquetas <span> a el texto, para
ocultarlo con CSS:
ul {
list-style:none;
margin:0;
padding:0;
}
ul li {
padding:0;
float:left;
ul li a {
display:block;
width:121px;
height:50px; //Quito el padding, pero le pongo
altura.
text-decoration:none;
}
ul li a:hover {
background-position:bottom;
}
ul li a span {
display:none; //Oculto el texto.
}
#inicio {
background-image:url(images/inicio.png);
}
#acerca {
background-image:url(images/acerca.png);
}
#contacto {
background-image:url(images/contacto.png);
}
Por ahora es todo, a disfrutar y a hacer las respectivas pruebas.
Crear un men
horizontal simple
con CSS
Usaremos listas para crear este men horizontal. Consta de 8 enlaces (por
defecto, podemos incluir cuantos queramos):
Cdigo HTML
<ul id=button>
<li><a href=#>Home</a></li>
<li><a href=#>About</a></li>
<li><a href=#>Services</a></li>
<li><a href=#>Clients</a></li>
<li><a href=#>Products</a></li>
<li><a href=#>F.A.Q</a></li>
<li><a href=#>Help</a></li>
<li><a href=#>Contact Us</a></li>
</ul>
Pero claro, este men no tiene estilo (CSS). Sin estilo se muestra as:
Cdigo CSS
Vamos aplicarle estilo pues. Solo usaremos un nombre de ID para aplicar CSS Se
llamar button:
#button {
padding: 0;
}