📘 HTML TABLES (TABLAS)

Ana Belén Hernández · Factoría F5 · 19 febrero 2026

Explicación para empezar desde cero · 5 minutos teoría + 2 minutos ejercicio


🔹 1. ¿Qué es una tabla en HTML?

Una tabla es una forma de ordenar información en filas (de izquierda a derecha) y columnas (de arriba a abajo). Por ejemplo:

En HTML usamos etiquetas para construir la tabla. Una etiqueta es una palabra entre < > que le dice al navegador qué tipo de contenido es.

Etiquetas básicas (las más importantes):

📌 Ejemplo mínimo (copia esto y pruébalo)

<table>
  <tr>
    <th>Nombre</th>   <!-- encabezado columna 1 -->
    <th>Edad</th>     <!-- encabezado columna 2 -->
  </tr>
  <tr>
    <td>Ana</td>      <!-- fila 1, dato columna 1 -->
    <td>30</td>       <!-- fila 1, dato columna 2 -->
  </tr>
</table>
    

Lo que se ve en el navegador (con bordes para que lo veas claro):

NombreEdad
Ana30

🔹 2. Expandir filas y columnas

A veces queremos que una celda ocupe más de un espacio. Para eso usamos colspan (para columnas) y rowspan (para filas).

🔸 colspan → una celda ocupa VARIAS COLUMNAS

Se escribe dentro de la celda. Ejemplo: <td colspan="2"> ocupará dos columnas.

<table>
  <tr>
    <th>Producto</th>
    <th>Precio</th>
  </tr>
  <tr>
    <td>Manzanas</td>
    <td>2€</td>
  </tr>
  <tr>
    <td colspan="2">Oferta especial</td>  <!-- esta celda ocupa 2 columnas -->
  </tr>
</table>
    

Resultado:

ProductoPrecio
Manzanas2€
Oferta especial

La celda "Oferta especial" ocupa el espacio de las dos columnas.

🔸 rowspan → una celda ocupa VARIAS FILAS

Ejemplo: <td rowspan="2"> ocupará dos filas.

<table>
  <tr>
    <th>Categoría</th>
    <th>Producto</th>
  </tr>
  <tr>
    <td rowspan="2">Frutas</td>  <!-- esta celda ocupa 2 filas -->
    <td>Manzanas</td>
  </tr>
  <tr>
    <td>Plátanos</td>  <!-- en esta fila ya no hay celda para categoría, la de arriba se estira -->
  </tr>
</table>
    

Resultado:

CategoríaProducto
FrutasManzanas
Plátanos

La celda "Frutas" abarca dos filas.


🔹 3. Organizar la tabla con <thead>, <tbody> y <tfoot>

Estas etiquetas ayudan a dividir la tabla en tres partes, aunque no cambian cómo se ve:

Ejemplo con 5 columnas y 3 películas (muy parecido al ejercicio):

<table>
  <thead>
    <tr>
      <th>Título</th>
      <th>Director</th>
      <th>Año</th>
      <th>Género</th>
      <th>Puntuación</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>El Padrino</td>
      <td>Francis Ford Coppola</td>
      <td>1972</td>
      <td>Drama</td>
      <td>9.2</td>
    </tr>
    <tr>
      <td>Star Wars</td>
      <td>George Lucas</td>
      <td>1977</td>
      <td>Ciencia ficción</td>
      <td>8.6</td>
    </tr>
    <tr>
      <td>Toy Story</td>
      <td>John Lasseter</td>
      <td>1995</td>
      <td>Animación</td>
      <td>8.3</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td colspan="4"><strong>Mejor puntuada:</strong></td>
      <td><strong>9.2</strong></td>
    </tr>
  </tfoot>
</table>
    

Resultado visual de este ejemplo:

TítuloDirectorAñoGéneroPuntuación
El PadrinoFrancis Ford Coppola1972Drama9.2
Star WarsGeorge Lucas1977Ciencia ficción8.6
Toy StoryJohn Lasseter1995Animación8.3
Mejor puntuada:9.2

Observa cómo el pie usa colspan="4" para que el texto ocupe las primeras cuatro columnas, dejando la quinta para la puntuación.


🎯 EJERCICIO PRÁCTICO (10 minutos)

Enunciado: Crear una tabla con los siguientes datos de películas.

Columnas (encabezados): Título, Director, Año, Género, Puntuación.

Películas (datos):

Requisitos extra:

💡 Pista importante: En la celda del pie, escribe <td colspan="4">Mejor puntuada:</td> y luego otra celda con <td>9.2</td>.

⏳ Tiempo: 10 minutos. ¡Intentadlo!


🔍 SOLUCIÓN (código completo)

Aquí tienes el código de la tabla resuelta, con explicaciones en comentarios.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Solución: Tabla de películas</title>
</head>
<body>
    <h1>🎬 Películas favoritas</h1>
    <table>
        <!-- ENCABEZADO (títulos de columnas) -->
        <thead>
            <tr>
                <th>Título</th>
                <th>Director</th>
                <th>Año</th>
                <th>Género</th>
                <th>Puntuación</th>
            </tr>
        </thead>

        <!-- CUERPO (datos de cada película) -->
        <tbody>
            <tr>
                <td>El Padrino</td>
                <td>Francis Ford Coppola</td>
                <td>1972</td>
                <td>Drama</td>
                <td>9.2</td>
            </tr>
            <tr>
                <td>Star Wars</td>
                <td>George Lucas</td>
                <td>1977</td>
                <td>Ciencia ficción</td>
                <td>8.6</td>
            </tr>
            <tr>
                <td>Toy Story</td>
                <td>John Lasseter</td>
                <td>1995</td>
                <td>Animación</td>
                <td>8.3</td>
            </tr>
        </tbody>

        <!-- PIE (resumen, con colspan) -->
        <tfoot>
            <tr>
                <td colspan="4"><strong>Mejor puntuada:</strong></td>
                <td><strong>9.2</strong></td>
            </tr>
        </tfoot>
    </table>
</body>
</html>
    

Así se ve la solución (con bordes para que veas la estructura):

TítuloDirectorAñoGéneroPuntuación
El PadrinoFrancis Ford Coppola1972Drama9.2
Star WarsGeorge Lucas1977Ciencia ficción8.6
Toy StoryJohn Lasseter1995Animación8.3
Mejor puntuada:9.2

Observa cómo la celda "Mejor puntuada:" ocupa cuatro columnas gracias a colspan="4".


📚 Resumen

📖 Para seguir aprendiendo: MDN: Tablas HTML (es una referencia, no te asustes).


🙋‍♀️ ¿Alguna pregunta?