- Uso de etiquetas fundamentales como table, tr, td y th para organizar datos tabulares.
- Implementación de estructuras avanzadas mediante thead, tbody y tfoot para mejorar la legibilidad.
- Control de la disposición de celdas mediante los atributos de expansión colspan y rowspan.
- Migración del diseño de tablas hacia hojas de estilo CSS para optimizar la adaptabilidad y accesibilidad.

Si te estás lanzando al mundo del desarrollo web, seguramente te habrás dado cuenta de que el HTML es la piedra angular para dar forma y estructura a cualquier sitio. Es el lenguaje que nos permite decidir dónde va un título, dónde se coloca una imagen y, por supuesto, cómo organizar la información de manera que no sea un caos visual para el usuario.
Dentro de todas las herramientas que nos ofrece, las tablas son piezas clave cuando necesitamos presentar datos de forma ordenada. Ya sea para un calendario, un listado de precios o un inventario complejo, saber manejarlas correctamente te permitirá crear páginas mucho más profesionales y fáciles de leer, evitando que la información quede dispersa por la pantalla.
Fundamentos y estructura básica
Para empezar a montar una tabla, lo primero es entender que necesitamos un contenedor principal. La etiqueta <table> es la que le indica al navegador que todo lo que esté dentro debe tratarse como una tabla. Sin embargo, esta etiqueta por sí sola no hace nada; necesita que definamos las filas y el contenido de cada celda para cobrar vida.
Para organizar el contenido, utilizamos la etiqueta <tr> (table row), que básicamente crea una fila horizontal. Una vez que tenemos la fila, necesitamos meter los datos dentro de ella usando <td> (table data), que representa cada una de las celdas individuales. Es como si estuviéramos dibujando una cuadrícula paso a paso.
Si queremos que la tabla tenga un aspecto más profesional, podemos sustituir algunos <td> por <th> (table header). Estas celdas de encabezado hacen que el texto aparezca automáticamente en negrita y centrado, lo cual es ideal para los títulos de las columnas o las filas, permitiendo que el usuario identifique rápidamente de qué trata cada dato.
Además, es muy recomendable añadir un título general a nuestra tabla utilizando la etiqueta <caption>. Esta debe colocarse justo después de abrir la etiqueta de la tabla y sirve para dar un contexto global al contenido, pudiendo alinearse tanto en la parte superior como en la inferior según el diseño que busquemos.
Llevando las tablas al siguiente nivel
Cuando las tablas empiezan a crecer y contienen mucha información, una estructura simple de filas y celdas puede quedarse corta. Para que el código sea más limpio y los navegadores lo interpreten mejor, existen etiquetas de agrupamiento. El <thead> se encarga de la cabecera, el <tbody> del cuerpo principal de los datos y el <tfoot> para los pies de tabla, donde suelen ir los totales o resúmenes.
A veces, la información no encaja perfectamente en una cuadrícula simple y necesitamos que una celda sea más grande que las demás. Aquí es donde entran en juego los atributos de expansión. El colspan nos permite hacer que una celda se extienda horizontalmente abarcando varias columnas, mientras que el rowspan hace que la celda crezca verticalmente ocupando el espacio de varias filas.
En cuanto a la organización de columnas, existen herramientas como <colgroup> y <col>. Estas etiquetas son súper útiles para aplicar estilos a grupos enteros de columnas sin tener que ir una por una, permitiéndonos definir el ancho o el color de fondo de manera mucho más eficiente y rápida.
Estética, bordes y formatos
Antiguamente, se usaba mucho el atributo border directamente en la etiqueta table para hacer visibles las líneas. Aunque la mayoría de los navegadores actuales lo sigan aceptando, hoy en día se considera una práctica obsoleta. Lo ideal es gestionar los bordes, colores y márgenes a través de hojas de estilo CSS, ya que esto separa el contenido del diseño.
Si hablamos de ajustes rápidos, existen atributos como cellpadding, que controla la distancia entre el borde de la celda y su contenido, y cellspacing, que define la separación entre las celdas mismas. Jugar con estos valores puede hacer que una tabla se vea apretada o, por el contrario, con un aire mucho más aireado y limpio.
Para el alineado del contenido, podemos usar align (para horizontal: left, center, right) y valign (para vertical: top, middle, bottom). Esto es fundamental cuando tenemos celdas con diferentes cantidades de texto y queremos que todo quede equilibrado visualmente, evitando que algunos textos queden pegados al techo de la celda.
Accesibilidad y errores comunes
Un fallo muy típico es intentar usar las tablas para maquetar toda la estructura de una página web. Hace años era común, pero hoy es un error garrafal ya que no son adaptables a móviles. Para organizar el layout de una web debemos usar CSS (como Flexbox o Grid), dejando las tablas exclusivamente para datos tabulares.
Para que nuestra web sea inclusiva, debemos prestar atención a la accesibilidad web. El uso de etiquetas como <scope> ayuda a los lectores de pantalla a entender qué encabezado corresponde a qué celda. Cuanto más estructurada esté la tabla con sus respectivas secciones (thead, tbody), más fácil será para personas con discapacidad navegar por la información.
En casos muy específicos donde necesitemos efectos visuales complejos que sean compatibles con navegadores muy viejos, algunos desarrolladores recurren a trucos con imágenes. Esto implica crear imágenes de un solo píxel de color y estirarlas mediante atributos de ancho y alto para simular bordes personalizados o esquinas redondeadas, aunque es una técnica muy manual y tediosa comparada con el uso de imágenes en HTML y el CSS moderno.
El dominio de las tablas en HTML requiere conocer desde la etiqueta básica <table> hasta la gestión de la expansión de celdas con colspan y rowspan, asegurando siempre que el contenido esté bien estructurado mediante el uso de encabezados y secciones lógicas para garantizar una lectura clara y una accesibilidad óptima en cualquier dispositivo.
Soy un apasionado de la tecnología que ha convertido sus intereses «frikis» en profesión. Llevo más de 10 años de mi vida utilizando tecnología de vanguardia y trasteando todo tipo de programas por pura curiosidad. Ahora me he especializado en tecnología de ordenador y videojuegos. Esto es por que desde hace más de 5 años que trabajo redactando para varias webs en materia de tecnología y videojuegos, creando artículos que buscan darte la información que necesitas con un lenguaje entendible por todos.
Si tienes cualquier pregunta, mis conocimientos van desde todo lo relacionado con el sistema operativo Windows así como Android para móviles. Y es que mi compromiso es contigo, siempre estoy dispuesto a dedicarte unos minutos y ayudarte a resolver cualquier duda que tengas en este mundo de internet.