Listas


Boa parte de uma página web é, na verdade, uma lista: menus de navegação, resultados de busca, grades de produtos, os ingredientes de uma receita, os passos para redefinir uma senha. Sempre que o conteúdo é um conjunto de itens relacionados, o HTML tem um elemento que expressa isso, e usá-lo garante que o navegador, e qualquer pessoa lendo a página com um software de acessibilidade, saiba que aqueles itens pertencem juntos.
Listas não ordenadas
Quando a ordem dos itens não importa, você usa uma lista não ordenada. Pense em uma lista de compras: leite, pão, ovos. Não importa qual você escreve primeiro, eles são apenas um conjunto de coisas agrupadas.
Você monta uma com duas tags. A tag <ul> envolve a lista inteira, e cada item vai dentro da sua própria tag <li> ("list item", ou item de lista):
<ul>
<li>Leite</li>
<li>Pão</li>
<li>Ovos</li>
</ul>O navegador mostra cada item em sua própria linha, com um marcador na frente. Você não adicionou os marcadores nem as quebras de linha, o navegador faz isso porque você disse a ele que aquilo é uma lista.
<ul> para uma lista em que a ordem não importa, e envolva cada item na sua própria <li>. O navegador adiciona os marcadores e as quebras de linha para você, então você nunca precisa digitá-los à mão. Demorei um pouco para confiar nisso, eu ficava querendo adicionar os pontinhos eu mesmo. Listas ordenadas e seus atributos
Às vezes a ordem é o ponto principal. Passos de uma receita, posições em uma corrida, instruções que você segue uma após a outra. Para esses casos você usa uma lista ordenada, que numera os itens para você.
Ela funciona exatamente como uma lista não ordenada, mas o container é <ol> em vez de <ul>:
<ol>
<li>Pré-aqueça o forno a 180°C</li>
<li>Misture a farinha e o açúcar</li>
<li>Coloque na forma e asse por 25 minutos</li>
</ol>Agora o navegador coloca 1, 2, 3 na frente dos itens em vez de marcadores. Se você adicionar um novo passo no meio depois, os números se renumeram automaticamente. Você nunca digita os números, e esse é o ponto de usar <ol>.
<ol> quando a ordem importa, como nos passos de uma receita, e o navegador numera os itens para você. Adicione ou remova um passo e os números se ajustam sozinhos, então você nunca digita 1. ou 2. à mão. Os mesmos itens <li> de antes, só que com um container diferente. Listas de descrição
Existe um terceiro tipo de lista para quando cada item é, na verdade, um par: uma palavra e seu significado, um rótulo e seu valor. Um glossário é o exemplo mais claro, cada termo seguido do que ele significa.
Essa é uma lista de descrição, e ela usa três tags. <dl> envolve tudo, <dt> contém cada termo, e <dd> contém a descrição que acompanha esse termo:
<dl>
<dt>HTML</dt>
<dd>A linguagem que descreve a estrutura de uma página.</dd>
<dt>CSS</dt>
<dd>A linguagem que descreve a aparência da página.</dd>
</dl>O navegador mostra cada descrição recuada sob seu termo, então o pareamento fica claro de imediato. Pense em "dt" como a palavra que você está definindo e "dd" como a definição.
<dl> em volta de tudo, <dt> para cada termo, e <dd> para a descrição que vem depois dele. Um glossário é a imagem para guardar na cabeça: palavra, depois definição, palavra, depois definição. Aninhando listas
Listas podem ficar dentro de outras listas. Um menu pode ter "Bebidas" com opções quentes e frias abaixo, e cada uma delas com suas próprias escolhas. Colocar uma lista dentro de outra se chama aninhamento.
O ponto principal para acertar: a lista interna vai dentro de um <li>, não solta entre os itens. Você coloca o <ul> (ou <ol>) inteiro dentro do item de lista ao qual ele pertence:
<ul>
<li>Bebidas
<ul>
<li>Café</li>
<li>Chá</li>
</ul>
</li>
<li>Salgadinhos</li>
</ul>"Café" e "Chá" fazem parte de "Bebidas", então a listinha delas fica dentro do item "Bebidas". O navegador recua um pouco mais a lista interna, para você ver que ela pertence ao item acima dela.
<li> a que ela pertence, não solta entre os itens. O navegador a recua para você ver que ela faz parte do item acima. Essa regra de "dentro do <li>" é a única coisa para lembrar aqui. 
