Saltar al contenido
Curso de HTML
Todos los cursos Ir al ejercicio →

Tablas

  • ⏱ 30 minutos
  • 📶 Nivel: principiante
  • 🧩 Incluye ejercicio

💡 🎯 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 colspan y rowspan.
  • Hacer tablas accesibles con caption y scope.

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:

EtiquetaSignificadoQué representa
<table>table: tablaEl contenedor de toda la tabla
<tr>table row: filaUna fila horizontal
<th>table header: encabezadoUna celda de título (columna o fila)
<td>table data: datoUna celda normal con información
Tu primera tabla
<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

FrutaPrecio
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.

Así se ve el editor: escribes una fila nueva y aparece en la tabla.
✏️ Tu tabla de frutas

💡 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:

Tabla con tres secciones
<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

ProductoCantidadSubtotal
Cuaderno3$90
Lápiz10$50
Total13$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>:

caption y scope
<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:

ValorSignificaÚsalo cuando…
scope="col"Título de la columnaEl <th> está arriba y describe hacia abajo
scope="row"Título de la filaEl <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:

✏️ Combina celdas

⚠️ 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.

  1. Dibuja la tabla en papel con la cuadrícula completa.
  2. Marca qué celdas se unen.
  3. 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:

Estilo para tablas
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;
}

🔍 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

📒 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 y scope="col" o scope="row" aclara los encabezados.
  • colspan combina columnas y rowspan combina 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érminoSignificado
FilaLínea horizontal de celdas (<tr>).
ColumnaConjunto vertical de celdas; no tiene etiqueta propia, nace de alinear las celdas.
CeldaCada recuadro de la tabla (<th> o <td>).
EncabezadoCelda que da título a una columna o fila (<th>).
colspanAtributo que extiende una celda a varias columnas.
rowspanAtributo que extiende una celda a varias filas.
Datos tabularesInformació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?

¿Para qué debes usar una tabla?

Quieres que una celda ocupe dos columnas. ¿Qué escribes?

¿Dónde se coloca <caption>?

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.

Ir al ejercicio