Listas y tablas
Las listas y las tablas son dos formas de organizar información estructurada. Cada una tiene su contexto: las listas para enumeraciones, las tablas para datos con filas y columnas relacionadas entre sí.
Listas
Lista desordenada: <ul>
Para elementos sin un orden específico — los puntos con viñeta del HTML:
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
Lista ordenada: <ol>
Para pasos, rankings o cualquier cosa donde el orden importa:
<ol>
<li>Escribe el HTML</li>
<li>Añade los estilos CSS</li>
<li>Añade la lógica JavaScript</li>
</ol>
<ol> admite atributos extra:
<!-- Empieza desde el 3 -->
<ol start="3">
<li>Tercer paso</li>
<li>Cuarto paso</li>
</ol>
<!-- Orden inverso -->
<ol reversed>
<li>Lo más importante</li>
<li>Lo segundo</li>
</ol>
Lista de definición: <dl>
Para glosarios, metadatos o pares clave-valor:
<dl>
<dt>HTML</dt>
<dd>Lenguaje de marcado para estructurar páginas web.</dd>
<dt>CSS</dt>
<dd>Lenguaje de estilos para diseñar páginas web.</dd>
</dl>
Listas anidadas
Puedes meter una lista dentro de un <li> para crear submenús o jerarquías:
<ul>
<li>
Frontend
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</li>
<li>
Backend
<ul>
<li>Node.js</li>
<li>Python</li>
</ul>
</li>
</ul>
Tablas
Las tablas son para datos tabulares — información que tiene sentido en filas y columnas con relación entre sí. No son para maquetar páginas (eso es trabajo de CSS).
Tabla básica
<table>
<thead>
<tr>
<th>Lenguaje</th>
<th>Tipo</th>
<th>Año</th>
</tr>
</thead>
<tbody>
<tr>
<td>HTML</td>
<td>Marcado</td>
<td>1993</td>
</tr>
<tr>
<td>CSS</td>
<td>Estilos</td>
<td>1996</td>
</tr>
<tr>
<td>JavaScript</td>
<td>Programación</td>
<td>1995</td>
</tr>
</tbody>
</table>
<thead>→ cabecera de la tabla<tbody>→ cuerpo de datos<tr>→ fila (table row)<th>→ celda de cabecera (table header) — negrita y centrada por defecto<td>→ celda de datos (table data)
Pie de tabla: <tfoot>
<table>
<thead>
<tr><th>Producto</th><th>Precio</th></tr>
</thead>
<tbody>
<tr><td>HTML Book</td><td>15€</td></tr>
<tr><td>CSS Book</td><td>18€</td></tr>
</tbody>
<tfoot>
<tr><td>Total</td><td>33€</td></tr>
</tfoot>
</table>
Celdas que abarcan varias columnas o filas
<table>
<tr>
<!-- Esta celda ocupa 2 columnas -->
<th colspan="2">Información personal</th>
</tr>
<tr>
<td>Nombre</td>
<td>Ana García</td>
</tr>
<tr>
<!-- Esta celda ocupa 2 filas -->
<td rowspan="2">Contacto</td>
<td>email@ejemplo.com</td>
</tr>
<tr>
<td>+34 600 000 000</td>
</tr>
</table>
Accesibilidad en tablas
<!-- caption: título visible de la tabla, importante para lectores de pantalla -->
<table>
<caption>Comparativa de lenguajes web</caption>
<thead>
<tr>
<!-- scope indica si el th es cabecera de columna o de fila -->
<th scope="col">Lenguaje</th>
<th scope="col">Uso principal</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">HTML</th>
<td>Estructura</td>
</tr>
</tbody>
</table>
En la siguiente lección aprendemos a crear formularios: la forma en que los usuarios envían datos a una web.