Tablas
💡 🎯 Al terminar esta lección podrás…
- Crear tablas con filas, encabezados y celdas de datos.
- Organizar una tabla con encabezado, cuerpo y pie.
- Combinar celdas con
colspanyrowspan. - Hacer tablas accesibles con
captionyscope.
1.Para qué sirven las tablas
Una tabla presenta datos organizados en filas y columnas, como una hoja de cálculo: horarios, precios, calificaciones, comparativas.
⚠️ Importante · Las tablas son para datos
Usa tablas solo cuando la información sea realmente tabular. Antes se usaban para acomodar la página (menús a la izquierda, contenido a la derecha). Eso ya no se hace: para el diseño se usa CSS. Una tabla mal usada confunde a los lectores de pantalla y se ve mal en el celular.
Una buena regla: si podrías abrir los datos en una hoja de cálculo, una tabla es la herramienta correcta.
2.La estructura básica
Una tabla se construye con cuatro etiquetas principales. Piensa en ella como una cuadrícula que se arma fila por fila:
| Etiqueta | Significado | Qué representa |
|---|---|---|
<table> | table: tabla | El contenedor de toda la tabla |
<tr> | table row: fila | Una fila horizontal |
<th> | table header: encabezado | Una celda de título (columna o fila) |
<td> | table data: dato | Una celda normal con información |
<table>
<tr>
<th>Fruta</th>
<th>Precio</th>
</tr>
<tr>
<td>Manzana</td>
<td>$20</td>
</tr>
<tr>
<td>Mango</td>
<td>$35</td>
</tr>
</table>
Así se ve
| Fruta | Precio |
|---|---|
| Manzana | $20 |
| Mango | $35 |
📌 Nota · Sin estilo, una tabla se ve «desnuda»
Por defecto el navegador no dibuja bordes. En la lección de CSS le darás un aspecto cuidado. Mientras tanto, en las prácticas de abajo ya incluimos un poco de estilo para que la veas con claridad.
Lee el código de arriba como una receta: «una tabla, con una fila, con dos celdas de título; luego otra fila con dos celdas de datos…». Cada <tr> debe tener la misma cantidad de celdas para que las columnas queden alineadas.
3.Practica en vivo
Modifica la tabla: agrega una tercera fila con otra fruta, cambia un precio o añade una columna «Origen». Mira cómo reacciona el resultado a la derecha.
💡 Consejo · Aprende rompiéndolo
Borra a propósito un </td> y observa qué pasa. Equivocarte en el editor de práctica no cuesta nada, y ver el error es la mejor forma de reconocerlo después.
4.Encabezado, cuerpo y pie
Para tablas más serias conviene dividirlas en tres zonas. Así el código queda ordenado y los lectores de pantalla entienden mejor su estructura:
<thead>: la fila o filas de encabezado.<tbody>: el cuerpo con los datos.<tfoot>: el pie, para totales o notas.
<table>
<thead>
<tr><th>Producto</th><th>Cantidad</th><th>Subtotal</th></tr>
</thead>
<tbody>
<tr><td>Cuaderno</td><td>3</td><td>$90</td></tr>
<tr><td>Lápiz</td><td>10</td><td>$50</td></tr>
</tbody>
<tfoot>
<tr><th>Total</th><td>13</td><td>$140</td></tr>
</tfoot>
</table>
Así se ve
| Producto | Cantidad | Subtotal |
|---|---|---|
| Cuaderno | 3 | $90 |
| Lápiz | 10 | $50 |
| Total | 13 | $140 |
📌 Nota · El orden visual no cambia
Aunque escribas <tfoot> antes o después de <tbody>, el navegador lo muestra siempre al final de la tabla.
5.Título de la tabla y accesibilidad
Una tabla debería decir de qué trata. Para eso existe <caption>, que va justo después de abrir <table>:
<table>
<caption>Horario de clases: lunes</caption>
<thead>
<tr>
<th scope="col">Hora</th>
<th scope="col">Materia</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">8:00</th>
<td>Matemáticas</td>
</tr>
<tr>
<th scope="row">10:00</th>
<td>Historia</td>
</tr>
</tbody>
</table>
El atributo scope le dice a los lectores de pantalla a qué se refiere un encabezado:
| Valor | Significa | Úsalo cuando… |
|---|---|---|
scope="col" | Título de la columna | El <th> está arriba y describe hacia abajo |
scope="row" | Título de la fila | El <th> está a la izquierda y describe hacia la derecha |
💡 Consejo · Piénsalo en voz alta
Una persona que usa lector de pantalla recorre la tabla celda por celda. Con scope, al llegar a «Matemáticas» escuchará «8:00, Matemáticas», y entenderá la relación sin ver la cuadrícula.
6.Combinar celdas: colspan y rowspan
A veces una celda debe ocupar más de una columna o una fila, por ejemplo un título que abarca varias columnas. Hay dos atributos:
colspan="n": la celda se extiende n columnas hacia la derecha.rowspan="n": la celda se extiende n filas hacia abajo.
⚠️ Importante · Cuenta bien las celdas
Cuando combinas celdas, las filas siguientes deben tener menos celdas, porque algunas posiciones ya están ocupadas. En el ejemplo, «Alumno» ocupa dos filas, así que la segunda fila solo escribe dos <th>. Si las cuentas no cuadran, la tabla se deforma.
- Dibuja la tabla en papel con la cuadrícula completa.
- Marca qué celdas se unen.
- Escribe el código fila por fila, omitiendo las celdas ya cubiertas.
7.Estilo básico de tabla
Sin CSS, una tabla es funcional pero poco atractiva. Aquí tienes un pequeño estilo que puedes copiar y adaptar. En la lección de CSS entenderás cada línea:
table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 8px 12px;
border: 1px solid #ccc;
text-align: left;
}
th {
background: #f0f0ff;
}
tbody tr:nth-child(even) {
background: #fafafa;
}
border-collapse: collapseune los bordes de las celdas en una sola línea.paddingda aire interior a cada celda.nth-child(even)pinta las filas pares para leer mejor ("cebra").
🔍 Ejemplo · Tablas en el celular
En pantallas pequeñas una tabla ancha puede desbordarse. Una solución sencilla es envolverla en un <div> con overflow-x: auto, para que se pueda desplazar horizontalmente sin romper la página. Este curso lo hace con sus propias tablas.
8.Errores frecuentes
- Usar tablas para el diseño de la página. Las tablas son solo para datos.
- Celdas de más o de menos en una fila: la cuadrícula queda torcida.
- Olvidar cerrar
</td>o</tr>: el navegador intenta adivinar y el resultado cambia entre navegadores. - Usar
<td>en negrita en lugar de<th>para los títulos: se pierde el significado. - Escribir
<tr>directamente dentro de<table>y también<tbody>: elige un estilo y úsalo en toda la tabla. - Dejar tablas sin
<caption>niscope, dificultando la lectura con lector de pantalla.
📒 Apuntes para llevar
- Una tabla se compone de
<table>, filas<tr>y celdas<th>(título) o<td>(dato). - Úsalas solo para datos tabulares, nunca para dar forma a la página.
<thead>,<tbody>y<tfoot>ordenan la tabla en encabezado, cuerpo y pie.<caption>da título a la tabla yscope="col"oscope="row"aclara los encabezados.colspancombina columnas yrowspancombina filas.- Todas las filas deben sumar el mismo número de columnas, contando las celdas combinadas.
- El aspecto se logra con CSS (
border-collapse,padding,border).
9.Glosario
| Término | Significado |
|---|---|
| Fila | Línea horizontal de celdas (<tr>). |
| Columna | Conjunto vertical de celdas; no tiene etiqueta propia, nace de alinear las celdas. |
| Celda | Cada recuadro de la tabla (<th> o <td>). |
| Encabezado | Celda que da título a una columna o fila (<th>). |
colspan | Atributo que extiende una celda a varias columnas. |
rowspan | Atributo que extiende una celda a varias filas. |
| Datos tabulares | Información que tiene sentido ordenada en filas y columnas. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
¿Qué etiqueta crea una celda de encabezado?
<th> (table header) marca una celda de título. <td> es una celda de datos y <tr> es la fila completa.
¿Para qué debes usar una tabla?
Las tablas son para datos tabulares. El diseño de la página se hace con CSS.
Quieres que una celda ocupe dos columnas. ¿Qué escribes?
colspan extiende la celda horizontalmente; rowspan lo hace verticalmente.
¿Dónde se coloca <caption>?
<caption> debe ser lo primero dentro de <table>, para que describa la tabla completa.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.