# Table Styling en HTML: cómo dar formato a tus tablas HTML

HTML Table Styling se refiere al diseño gráfico de las tablas web. Para el formato puedes utilizar códigos CSS que se integran directamente en el documento HTML o mediante una referencia a un archivo CSS externo.

## ¿Cómo se puede dar formato a tablas HTML?

Para HTML Table Styling, es decir, la personalización del estilo de las tablas HTML, puedes utilizar las opciones de CSS en el diseño web moderno. Utilizando el lenguaje de hojas de estilo, puedes cambiar la **apariencia de los elementos de contenido de la tabla** prácticamente a tu gusto. Por ejemplo, puedes definir colores de fondo personalizados para las celdas o un grosor especial para el marco. Dispones de tres opciones diferentes para integrar el código CSS apropiado y así dar formato a una tabla HTML:

- **Inclusión en el área `<head>`:** Los estilos CSS deseados se incluyen con la [HTML tag](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/html-tags/) `<style>` directamente en el área de cabecera de un documento HTML.
- **Archivo CSS externo:** Otra opción es utilizar un archivo CSS independiente, que se integra mediante la etiqueta `<link>` en el área `<head>` del documento HTML.
- **CSS inline:** También puedes utilizar `style` para aplicar Table Styling en HTML directamente en el elemento de la tabla. Sin embargo, esto solo se recomienda en casos particulares en los que la reutilización y el mantenimiento sencillo del código no sean importantes.

Consejo Descubre en detalle cómo integrar [CSS en HTML](https://www.ionos.com/es-us/digitalguide/paginas-web/diseno-web/css-en-html/) en nuestro artículo adicional.

## ¿Qué opciones de estilo están disponibles para las tablas HTML?

Hay una gran variedad de propiedades CSS que puedes utilizar para mejorar la apariencia y usabilidad de las tablas en los documentos web. Por ejemplo, puedes cambiar las **propiedades básicas de las tablas** con los siguientes códigos CSS:

- `width`: define el ancho de la tabla o de columnas individuales
- `border`: define el ancho, el estilo y el color del borde
- `border-collapse`: controla si los bordes de las celdas están combinados (`collapse`) o separados (`separate`)
- `border-spacing`: determina la distancia entre las celdas cuando se utiliza `border-collapse: separate`

A continuación, se presentan, de forma resumida y ordenadas por categorías, algunas de las opciones de Table Styling en HTML más importantes.

### Espaciado entre celdas y alineación del texto

<table>
  <thead>
    <tr>
      <th>Código CSS</th>
      <th>Descripción</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`padding`</td>
      <td>Añade espacio dentro de las celdas</td>
      <td></td>
    </tr>
    <tr>
      <td>`margin`</td>
      <td>Añade espacio por toda la tabla</td>
      <td></td>
    </tr>
    <tr>
      <td>`text-align`</td>
      <td>Determina la alineación horizontal del texto de las celdas (`left`, `center`, `right`)</td>
      <td></td>
    </tr>
    <tr>
      <td>`vertical-align`</td>
      <td>Determina la alineación vertical del contenido de las celdas (`top`, `middle`, `bottom`</td>
      <td></td>
    </tr>
  </tbody>
</table>

### Colores e imagen de fondo

<table>
  <thead>
    <tr>
      <th>Código CSS</th>
      <th>Descripción</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`background-color`</td>
      <td>Define el color de fondo de las celdas, las filas o de toda la tabla</td>
    </tr>
    <tr>
      <td>`color`</td>
      <td>Define el color del texto</td>
    </tr>
    <tr>
      <td>`background-image`</td>
      <td>Determina la imagen de fondo de las celdas o de toda la tabla</td>
    </tr>
  </tbody>
</table>

### Fuentes y tamaño de fuente

<table>
  <thead>
    <tr>
      <th>Código CSS</th>
      <th>Descripción</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`font-family`</td>
      <td>Determina el tipo de letra</td>
    </tr>
    <tr>
      <td>`font-size`</td>
      <td>Determina el tamaño de la fuente</td>
    </tr>
    <tr>
      <td>`font-weight`</td>
      <td>Determina el peso de la fuente (por ejemplo, `bold` para texto en negrita)</td>
    </tr>
    <tr>
      <td>`text-transform`</td>
      <td>Controla las mayúsculas y minúsculas del texto (`uppercase`, `lowercase`, `capitalize`)</td>
    </tr>
  </tbody>
</table>

### Borde de la tabla

<table>
  <thead>
    <tr>
      <th>Código CSS</th>
      <th>Descripción</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`border-style`</td>
      <td>Define el estilo del borde (`solid`, `dashed`, `dotted`)</td>
    </tr>
    <tr>
      <td>`border-width`</td>
      <td>Determina el grosor del borde</td>
    </tr>
    <tr>
      <td>`border-color`</td>
      <td>Determina el color del borde de la tabla</td>
    </tr>
  </tbody>
</table>

## Table Styling en HTML: cómo funciona (con ejemplos)

Por último, se muestra la **sintaxis y funcionalidad** de las tres variantes posibles para cambiar el estilo de tablas HTML mediante ejemplos prácticos. También se analizan brevemente las **ventajas y desventajas** de las distintas opciones.

### Formateo de tablas HTML en el área `<head>`

El estilo CSS de las tablas en el área de cabecera es especialmente práctico para **pequeños proyectos** y **cambios rápidos**. No necesitas una hoja de estilo adicional ni reglas mediante ID para determinar a qué tablas se deben aplicar las instrucciones. Sin embargo, las características solo se aplican a la página web correspondiente, lo que no favorece su reutilización y mantenimiento.

Incluye el código CSS deseado en el área de cabecera utilizando un elemento `<style>`. En el siguiente ejemplo, se especifica que la fila de cabecera de la tabla debe tener un fondo verde, mientras que las demás filas deben tener fondos gris claro y blanco alternativamente:

```html
<html> 
<head> 
    <style> 
        table { 
        thead th { 
            background-color: #4CAF50; / *Verde para la cabecera de la tabla* / 
        } 
        tbody tr:nth-child(odd) { 
            background-color: #f2f2f2; / *Fondo gris claro para las filas impares* / 
        } 
        tbody tr:nth-child(even) { 
            background-color: #ffffff; / *Fondo blanco para las líneas pares* / 
        } 
    </style> 
</head> 
<body> 
    <table> 
        <thead> 
            <tr> 
                <th>Columna 1</th> 
                <th>Columna 2</th> 
                <th>Columna 3</th> 
                <th>Columna 4</th> 
            </tr> 
        </thead> 
        <tbody> 
            <tr> 
                <td>Entrada 1</td> 
                <td>Entrada 2</td> 
                <td>Entrada 3</td> 
                <td>Entrada 4</td> 
            </tr> 
            <tr> 
                <td>Entrada 5</td> 
                <td>Entrada 6</td> 
                <td>Entrada 7</td> 
                <td>Entrada 8</td> 
            </tr> 
            <tr> 
                <td>Entrada 9</td> 
                <td>Entrada 10</td> 
                <td>Entrada 11</td> 
                <td>Entrada 12</td> 
            </tr> 
            <tr> 
                <td>Entrada 13</td> 
                <td>Entrada 14</td> 
                <td>Entrada 15</td> 
                <td>Entrada 16</td> 
            </tr> 
        </tbody> 
    </table> 
<div class="hash d-none" hidden>hash_e58f5c3651a76ece2699380202d767e4e2f7ac31</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body> 
</html>
```

[![Imagen: Formateo tabla HTML: ejemplo](https://www.ionos.com/es-us/digitalguide/fileadmin/_processed_/9/1/csm_html-table-styling_ejemplo-formato-tabla-html_84ca6e5265.webp "Formateo tabla HTML: ejemplo")](https://www.ionos.com/es-us/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/html-table-styling_ejemplo-formato-tabla-html.png) La tabla de ejemplo con formato sencillo muestra la fila de encabezado del color deseado y a continuación los colores de fila que se alternan. ### Table Styling en HTML mediante una hoja CSS

Diseñar el estilo de tablas HTML mediante una hoja CSS externa es la mejor manera posible de separar contenido y diseño. Además, las instrucciones son especialmente fáciles de repetir para otras páginas. Como los navegadores pueden almacenar en caché el archivo CSS, también se puede optimizar el **tiempo de carga**. Sin embargo, esta variante a veces lleva demasiado tiempo para los proyectos web más pequeños.

En este caso, lleva a cabo el ejemplo anterior en dos pasos diferentes. En primer lugar, crea un archivo CSS llamado `styles.css`, que se almacenará en el mismo directorio en el que se encuentra la página web, e inserta allí el siguiente código:

```css
thead th { 
      background-color: #4CAF50; / *Verde para la cabecera de la tabla* / 
    } 
    tbody tr:nth-child(odd) { 
      background-color: #f2f2f2; / *Fondo gris claro para las filas impares* / 
    } 
    tbody tr:nth-child(even) { 
      background-color: #ffffff; / *Fondo blanco para las líneas pares* / 
}
```

En el segundo paso, incluye el archivo en la cabecera mediante un elemento `<link>`. El código posterior de la tabla no cambia:

```html
<html> 
<head> 
        <link rel="stylesheet" type="text/css" href="styles.css"> 
</head> 
<body> 
    <table> 
        <thead> 
            <tr> 
… 
</html>
```

### Diseñar tabla HTML mediante código inline

El CSS inline es la opción más práctica si solo quieres realizar **ajustes específicos** en un único elemento de la tabla. Por lo tanto, esta opción es ideal para pequeños proyectos o pruebas puntuales en las que la reutilización no es importante. Sin embargo, para escenarios de código más sostenibles, se recomienda utilizar siempre uno de los otros dos tipos de incrustación.

El estilo inline se realiza directamente en los elementos pertinentes de una tabla HTML. En el ejemplo, el código sería el siguiente:

```html
<body> 
    <table> 
        <thead> 
            <tr> 
                <th style="background-color: #4CAF50;">Columna 1</th> 
                <th style="background-color: #4CAF50;">Columna 2</th> 
                <th style="background-color: #4CAF50;">Columna 3</th> 
                <th style="background-color: #4CAF50;">Columna 4</th> 
            </tr> 
        </thead> 
        <tbody> 
            <tr style="background-color: #f2f2f2;"> 
                <td>Entrada 1</td> 
                <td>Entrada 2</td> 
                <td>Entrada 3</td> 
                <td>Entrada 4</td> 
            </tr> 
            <tr> 
                <td>Entrada 5</td> 
                <td>Entrada 6</td> 
                <td>Entrada 7</td> 
                <td>Entrada 8</td> 
            </tr> 
            <tr style="background-color: #f2f2f2;"> 
                <td>Entrada 9</td> 
                <td>Entrada 10</td> 
                <td>Entrada 11</td> 
                <td>Entrada 12</td> 
            </tr> 
            <tr> 
                <td>Entrada 13</td> 
                <td>Entrada 14</td> 
                <td>Entrada 15</td> 
                <td>Entrada 16</td> 
            </tr> 
        </tbody> 
    </table> 
<div class="hash d-none" hidden>hash_e58f5c3651a76ece2699380202d767e4e2f7ac31</div><script data-shy-copy-guard>(function(){var C=[0x00AD,0x200B,0x200C,0x200D,0x2060,0xFEFF];var s=function(t){for(var i=0;i<C.length;i++){t=t.split(String.fromCharCode(C[i])).join("");}return t;};document.addEventListener("copy",function(e){var sel=document.getSelection();if(!sel||sel.isCollapsed||!e.clipboardData){return;}e.clipboardData.setData("text/plain",s(sel.toString()));try{var d=document.createElement("div");d.appendChild(sel.getRangeAt(0).cloneContents());e.clipboardData.setData("text/html",s(d.innerHTML));}catch(x){}e.preventDefault();});})();</script></body>
```


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/html-table-styling/](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/html-table-styling/) for AI/LLM consumption.