Saltar al contenido principal

Ejercicio práctico 6: Tablas en HTML

En este ejercicio práctico aprenderás a insertar y configurar una tabla con tres filas y tres columnas usando la etiqueta <table>.

Actividad

Crea una tabla con tres filas y tres columnas usando la etiqueta <table>.

Solución interactiva

Logo DivZone de ad link
Plataforma IAConvierte el código en clientes.Pruébalo gratis

Solución con el código HTML completo

HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Tablas</title>
</head>
<body>
<h1>Tabla</h1>
<table border="1">
<tr>
<th>Encabezado 1</th>
<th>Encabezado 2</th>
<th>Encabezado 3</th>
</tr>
<tr>
<td>Fila 1, Columna 1</td>
<td>Fila 1, Columna 2</td>
<td>Fila 1, Columna 3</td>
</tr>
<tr>
<td>Fila 2, Columna 1</td>
<td>Fila 2, Columna 2</td>
<td>Fila 2, Columna 3</td>
</tr>
</table>
</body>
</html>

Variantes del mismo ejercicio

Variante 1: Tabla con estructura semántica completa

Las tablas HTML5 tienen etiquetas semánticas que separan el encabezado, el cuerpo y el pie de la tabla. Esto mejora la accesibilidad y permite estilizar cada sección por separado.

HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Tabla Semántica</title>
</head>
<body>
<h1>Ventas Mensuales</h1>
<table border="1">
<thead>
<tr>
<th>Producto</th>
<th>Enero</th>
<th>Febrero</th>
<th>Marzo</th>
</tr>
</thead>
<tbody>
<tr>
<td>Laptops</td>
<td>$12,000</td>
<td>$15,000</td>
<td>$18,000</td>
</tr>
<tr>
<td>Monitores</td>
<td>$8,000</td>
<td>$9,500</td>
<td>$11,000</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Total</th>
<td>$20,000</td>
<td>$24,500</td>
<td>$29,000</td>
</tr>
</tfoot>
</table>
</body>
</html>
  • <thead>: agrupa las filas de encabezado. Los lectores de pantalla lo identifican como encabezado de columna.
  • <tbody>: contiene los datos principales de la tabla.
  • <tfoot>: fila de resumen o totales al pie de la tabla. Aunque se escribe antes o después de <tbody>, el navegador siempre lo muestra al final.

Variante 2: Celdas combinadas con colspan y rowspan

Para tablas más complejas como horarios o calendarios, colspan y rowspan permiten que una celda ocupe múltiples columnas o filas.

HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Horario de Clases</title>
</head>
<body>
<h1>Horario Semanal</h1>
<table border="1">
<thead>
<tr>
<th>Hora</th>
<th>Lunes</th>
<th>Martes</th>
<th>Miércoles</th>
</tr>
</thead>
<tbody>
<tr>
<td>08:00 - 10:00</td>
<td>Matemáticas</td>
<td>Física</td>
<td>Matemáticas</td>
</tr>
<tr>
<td>10:00 - 12:00</td>
<td colspan="3" align="center">Taller de Programación (todos los días)</td>
</tr>
<tr>
<td>12:00 - 14:00</td>
<td rowspan="2">Laboratorio</td>
<td>Inglés</td>
<td>Laboratorio</td>
</tr>
<tr>
<td>14:00 - 16:00</td>
<td>Deportes</td>
<td>Inglés</td>
</tr>
</tbody>
</table>
</body>
</html>
  • colspan="3": la celda "Taller de Programación" ocupa 3 columnas (Lunes + Martes + Miércoles).
  • rowspan="2": la celda "Laboratorio" ocupa 2 filas en la columna del Lunes.

Variante 3: Tabla sin bordes HTML

El atributo border está obsoleto en HTML5. Lo correcto es dejar que CSS maneje los bordes y estilos visuales.

HTML
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Tabla con Estilo CSS</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 2px solid #333;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
color: #333;
}
</style>
</head>
<body>
<h1>Tabla Estilizada con CSS</h1>
<table>
<thead>
<tr>
<th>Nombre</th>
<th>Edad</th>
<th>Ciudad</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ana García</td>
<td>28</td>
<td>Buenos Aires</td>
</tr>
<tr>
<td>Carlos López</td>
<td>35</td>
<td>Córdoba</td>
</tr>
<tr>
<td>María Rodríguez</td>
<td>22</td>
<td>Rosario</td>
</tr>
</tbody>
</table>
</body>
</html>

Separar estructura (HTML) de presentación (CSS) es una de las mejores prácticas más importantes del desarrollo web.


Mini-desafío: Ponelo a prueba

Creá un horario de clases semanal que contenga:

  • Una fila de encabezado con los días: "Hora", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes" (6 columnas)
  • Al menos 3 filas con diferentes materias
  • Una celda que use colspan para una materia que ocupe dos días seguidos
  • Una celda que use rowspan para una actividad de 2 horas seguidas
  • Usá <thead> y <tbody>

No copies y pegues de la Variante 2: adaptá el esquema a 6 columnas y creá tu propio horario.


Errores comunes con tablas HTML

ErrorPor qué es un problema
No cerrar etiquetas <tr>, <td> o <th>El navegador intenta adivinar la estructura y puede mostrar celdas desordenadas
Usar tablas para el layout de la páginaPráctica obsoleta desde hace 15 años. Para layouts usá CSS Grid o Flexbox. Las tablas son solo para datos tabulares
No usar <th> para encabezadosLos lectores de pantalla no pueden asociar celdas de datos con sus encabezados. <th> + atributo scope es obligatorio para accesibilidad
Usar border="1" en lugar de CSSEl atributo border está obsoleto en HTML5. Usá border-collapse: collapse y border en CSS
Olvidar <tbody>Aunque el navegador lo agrega automáticamente, sin <tbody> no podés estilizar el cuerpo de la tabla por separado ni aplicar scroll en tablas largas

Preguntas frecuentes

¿Las tablas son malas para SEO?

No. Las tablas bien usadas (para datos tabulares) son perfectamente válidas para SEO. Google las interpreta como datos estructurados y puede mostrar fragmentos enriquecidos si los datos son relevantes. Lo que es malo para SEO es usar tablas para el layout de la página, porque confunde a los crawlers sobre la estructura real del contenido.

¿Cuándo usar tablas vs CSS Grid?

Usá tablas HTML cuando tengas datos con relaciones fila-columna (precios, horarios, rankings, reportes numéricos). Usá CSS Grid para la maquetación visual de la página (header, sidebar, footer, galerías). La regla es simple: si exportarías el contenido a Excel, va en una tabla. Si es diseño visual, va en Grid.

Practicá con DivZone AI

¿Ya dominás las tablas? Generá una página con datos tabulares usando DivZone AI y analizá cómo se estructuran las tablas con thead, tbody y tfoot en un proyecto real. ¡Ver código generado es la mejor forma de aprender!

info

🔎 Revisa las siguientes secciones con más información sobre este tema: