Listas


Una cantidad sorprendente de una página web es en realidad una lista: menús de navegación, resultados de búsqueda, cuadrículas de productos, los ingredientes de una receta, los pasos para restablecer una contraseña. Cuando el contenido es un conjunto de elementos relacionados, HTML tiene un elemento que lo indica, y usarlo hace que el navegador, y cualquier persona que lea con software de asistencia, sepa que esos elementos van juntos.
Listas no ordenadas
Cuando el orden de los elementos no importa, usas una lista no ordenada. Piensa en una lista de compras: leche, pan, huevos. No importa cuál escribas primero, son un grupo de cosas agrupadas.
Se construye con dos etiquetas. La etiqueta <ul> envuelve toda la lista, y cada elemento va dentro de su propia etiqueta <li> ("list item", elemento de lista):
<ul>
<li>Leche</li>
<li>Pan</li>
<li>Huevos</li>
</ul>El navegador muestra cada elemento en su propia línea con una viñeta delante. Tú no agregaste las viñetas ni los saltos de línea, el navegador lo hace porque le dijiste que esto es una lista.
<ul> para una lista donde el orden no importa, y envuelve cada elemento en su propio <li>. El navegador agrega las viñetas y los saltos de línea por ti, así que nunca las escribes a mano. A mí me tomó un tiempo confiar en eso, seguía queriendo agregar los puntos yo mismo. Listas ordenadas y sus atributos
A veces el orden es lo más importante. Los pasos de una receta, las posiciones en una carrera, instrucciones que sigues una después de otra. Para eso usas una lista ordenada, que numera los elementos por ti.
Funciona exactamente igual que una lista no ordenada, pero el contenedor es <ol> en lugar de <ul>:
<ol>
<li>Precalienta el horno a 180°C</li>
<li>Mezcla la harina y el azúcar</li>
<li>Vierte en el molde y hornea por 25 minutos</li>
</ol>Ahora el navegador pone 1, 2, 3 delante de los elementos en lugar de viñetas. Si más adelante agregas un paso en el medio, los números se renumeran solos. Tú nunca escribes los números, y ese es justamente el punto de usar <ol>.
<ol> cuando el orden importa, como en los pasos de una receta, y el navegador numera los elementos por ti. Agrega o quita un paso y los números se arreglan solos, así que nunca escribes 1. o 2. a mano. Los mismos elementos <li> de antes, solo con un contenedor distinto. Listas de descripción
Hay un tercer tipo de lista para cuando cada elemento es realmente un par: una palabra y su significado, una etiqueta y su valor. Un glosario es el ejemplo más claro, cada término seguido de lo que significa.
Esto es una lista de descripción, y usa tres etiquetas. <dl> envuelve todo, <dt> contiene cada término, y <dd> contiene la descripción que le corresponde:
<dl>
<dt>HTML</dt>
<dd>El lenguaje que describe la estructura de una página.</dd>
<dt>CSS</dt>
<dd>El lenguaje que describe cómo se ve la página.</dd>
</dl>El navegador muestra cada descripción con sangría debajo de su término, de modo que la relación entre ambos se ve de un vistazo. Piensa en "dt" como la palabra que estás definiendo y en "dd" como la definición.
<dl> alrededor de todo, <dt> para cada término, y <dd> para la descripción que le sigue. Un glosario es la imagen que debes tener en mente, palabra y definición, palabra y definición. Anidamiento de listas
Las listas pueden ir dentro de otras listas. Un menú puede tener "Bebidas" con opciones calientes y frías debajo, y cada una de esas con sus propias opciones. Poner una lista dentro de otra se llama anidamiento.
Lo importante para hacerlo bien: la lista interna va dentro de un <li>, no suelta entre elementos. Pones todo el <ul> (o <ol>) dentro del elemento de lista al que corresponde:
<ul>
<li>Bebidas
<ul>
<li>Café</li>
<li>Té</li>
</ul>
</li>
<li>Bocadillos</li>
</ul>"Café" y "Té" son parte de "Bebidas", así que su pequeña lista vive dentro del elemento "Bebidas". El navegador sangra la lista interna un poco más, para que puedas ver que le pertenece al elemento de arriba.
<li> al que pertenece, no suelta entre elementos. El navegador la sangra para que puedas ver que forma parte del elemento de arriba. Esa regla de "dentro del <li>" es lo único que hay que recordar aquí. 
