Por qué esto?, por qué lo otro?

Buenas a toda la gente del foro, mis dudas son seguramente más que sencillas, y mucho más para todos ustedes. Me gustaría que me dejaran un link de algun tutorial que sea... super paso a paso (hiper detallista o como quieran llamarlo) de cómo hacer un menú simple... o el más simple simple del mundo con listas. A ver si me puedo explicar mejor, como saber... sé como se hace, pero a lo que apunto es a otra cosa, sería el por qué de cada cosa, osea..... quiero entenderlo todo, eso es lo más importante no?. A continuación voy a poner dos ejemplos como para que me entiendan mejor, pero como dije antes..... solamente se trata de armar un menú simple, que no tenga nada del otro mundo, que sea simple en todo sentido.

Ejemplo n° 1

<ul id="menu" >
<li><a href="manzanas.htm">Manzanas</a></li>
<li><a href="leche.htm">Leche</a></li>
<li><a href="patatas.htm">Patatas</a></li>
<li><a href="chocolate.htm">Chocolate</a></li>
</ul>

#menu {
margin: 0;
padding: 0 0 20px 10px; background-color: #00FF66;
}

#menu li {margin: 0;
padding: 0;
list-style-type: none;
float: left ;} (por qué ponen la propiedad "float" en la capa #menu li?)

#menu a {line-height: 14px;
font-weight: bold;
margin: 0 10px 4px 10px ;
text-decoration: none ;
color: #0000FF;}

#menu a.active, #menu a:hover{border-bottom: 4px solid #696 ;
padding-bottom: 2px ;
color: #000033;}

#menu a:hover{color: #363 ;}

En este primer ejemplo el Menú se ve perfectamente de forma horizontal


Ejemplo n° 2

<ul id="menu" >
<li><a href="manzanas.htm">Manzanas</a></li>
<li><a href="leche.htm">Leche</a></li>
<li><a href="patatas.htm">Patatas</a></li>
<li><a href="chocolate.htm">Chocolate</a></li>
</ul>

#menu {
margin: 0;
padding: 0 0 20px 10px; background-color: #00FF66;
}

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


#menu a {float: left ;} (por qué ponen la propiedad "float" en la capa #menu a?)

line-height: 14px;
font-weight: bold;
margin: 0 10px 4px 10px ;
text-decoration: none ;
color: #0000FF;}

#menu a.active, #menu a:hover{border-bottom: 4px solid #696 ;
padding-bottom: 2px ;
color: #000033;}

#menu a:hover{color: #363 ;}
En este segundo ejemplo, también el Menú se ve perfectamente de forma horizontal. ¿Entonces cuál es la diferencia de poner la propiedad float en la parte de #menu a ó #menu li?, me explico lo que quiero saber?, así como hice esta pregunta, podría hacer mucho más.
SalU2!

César
Hola Soda Stereo. El motivo es muy sencillo. Se ve igual porque los dos elementos (#menu li y #menu a) cumplen la condición, me explico:

Cuando le dices que float:left a menu li, estos son los elementos <li> que estes dentro del div #menu, y cuando le dices float:left a #menu a, estos son los elementos <a> dentro del div #menu, osea los enlaces dentro de #menu, y evidentemente los <li> a su vez van a ser enlaces sí o sí, ya que va a ser un menu ;-)

Personalmente creo que es mejor ponérselo a #menu li, ya que si algún elemento <li>, por el motivo que fuere, no llega a ser un enlace, se le va a aplicar igualmente el estilo. En cambio si lo pones a #menu a, si por algún motivo pones un <li> sin enlace, adiós estilo.

Por otra parte, entiendo que preguntas también que hace exactamente la propiedad float. Pues no hace más que decir dónde "flota" el elemento, en este caso "left" a la izquierda disponible, y si no hay izquierda disponible (no cabe) saltará de línea y buscará la nueva izquierda disponible.

Cualquier duda comenta. Saludos!
Hola Web-Freelance!! ante todo gracias por responder, también te quería decir que sé lo que hace el elemento la propiedad "float", lo sé perfectamente, pero a lo que apuntaba..... es justamente lo que me acabas de responder, pero como dije antes, así como hice esa pregunta.... también puedo hacer muchas más, del por qué esto y del por qué aquello, porque para mí lo importante es entenderlo bien, por eso puse el ejemplo de hacer un menú muy básico... que no tenga cosas llamativas. Conoces algún manual CSS que sea bien completo en todo sentido?.

Desde ya muchas gracias :grin:
SalU2!

César
Hola Soda Stereo.

Aquí te dejo el curso de CSS muy recomendable de CCTW: http://www.comocreartuweb.com/curso-de-estilos-css/estilos-predeter…
Aquí te dejo, como no, la especificación completa de CSS por W3C según los estandares: http://www.w3.org/TR/CSS21/
Y por último su guía de referencia: http://www.w3c.es/Divulgacion/GuiasReferencia/CSS21/

Creo que con esto te deberías hacer un auténtico experto en CSS 2, luego iremos a por el 3 [;)]

Por otra parte, aquí estamos para que preguntes e intentaremos resolver tus dudas.

Saludos!