La Etiqueta COL

Permite definir propiedades para columnas específicas en una tabla HTML, dentro de un grupo de columnas

La etiqueta <col> permite definir propiedades para columnas específicas en una tabla HTML, dentro de un grupo de columnas <colgroup>. Es útil para aplicar estilos o atributos a múltiples celdas de manera eficiente, evitando repetir código.

Sintaxis básica

<table>
  <colgroup>
    <col>          <!-- Columna 1 -->
    <col span="2"> <!-- Columnas 2 y 3 -->
  </colgroup>
  <!-- Filas y celdas -->
</table>

Atributos clave

Atributo Descripción
span Número de columnas que afecta (por defecto: 1)
style CSS en línea (solo algunas propiedades funcionan)
class Clase CSS para estilos reutilizables
width Define el ancho de la columna (obsoleto en HTML5, usar CSS)

Casos de uso comunes

Establecer anchos de columnas

<table>
  <colgroup>
    <col style="width: 150px"> <!-- Columna 1 -->
    <col style="width: 250px"> <!-- Columna 2 -->
  </colgroup>
  <tr>
    <th>Producto</th>
    <th>Descripción</th>
  </tr>
</table>

Alternar colores de fondo

<table>
  <colgroup>
    <col style="background: #f8f9fa">
    <col style="background: #e9ecef">
  </colgroup>
  <tr>
    <td>Manzanas</td>
    <td>$2.50</td>
  </tr>
</table>

Agrupar columnas con <span>

<table>
  <colgroup>
    <col span="2" style="background: #e9ecef"> <!-- Columnas 1 y 2 -->
    <col> <!-- Columna 3 -->
  </colgroup>
  <tr>
    <td>Nombre</td>
    <td>Email</td>
    <td>Teléfono</td>
  </tr>
</table>

Limitaciones de CSS en <col>

Solo funcionan estas propiedades:

  • width
  • background
  • border
  • visibility

<!-- Ejemplo válido -->
<col style="width: 200px; background: #f0f0f0; border-right: 2px solid red">

<!-- Ejemplo inválido (text-align no funciona) -->
<col style="text-align: center"> <!-- ¡No tendrá efecto! -->

Accesibilidad

  • Los lectores de pantalla ignoran los estilos aplicados con <col>.

Buenas prácticas:

  • Usar <th> para encabezados claros.

  • Complementar con atributos aria-label si el estilo transmite información relevante:

<col aria-label="Columna de precios en dólares">

Errores comunes

Usar <col> fuera de <colgroup>

<!-- Incorrecto -->
<table>
  <col style="width: 100px"> <!-- ¡Falta <colgroup>! -->
</table>

Confundir <col> con <td>

<!-- Incorrecto -->
<col>
  <td>Datos</td> <!-- <col> no contiene celdas -->
</col>

Aplicar estilos no compatibles

<col style="color: red; font-weight: bold"> <!-- ¡No funciona! -->

Ejemplo avanzado

<table border="1">
  <colgroup>
    <col class="destacada">
    <col span="2" style="width: 120px">
  </colgroup>
  <tr>
    <th>País</th>
    <th>Población</th>
    <th>Idioma</th>
  </tr>
  <tr>
    <td>México</td>
    <td>126M</td>
    <td>Español</td>
  </tr>
</table>

<style>
  .destacada {
    background: #fff3cd; /* Color de fondo para la primera columna */
    width: 200px;
  }
</style>

Buenas prácticas

Orden en la tabla:

<colgroup> debe ir después de <caption> y antes de <thead>/<tbody>

Usar clases CSS en lugar de estilos en línea:

<col class="ancho-fijo">

Validar HTML:

Asegurar que el número de <col> coincida con las columnas de la tabla.

Comparación con elementos similares

Elemento Propósito Ejemplo
<col> Estilos para columnas Anchos, fondos
<th> Encabezados de tabla Títulos de columnas
<td> Celdas de datos Contenido de la tabla

Conclusión:

La etiqueta <col> es ideal para:

  • Aplicar estilos consistentes a múltiples columnas.
  • Simplificar el mantenimiento de tablas complejas.
  • Evitar repetición de código en celdas individuales.

¡Úsala para crear tablas más limpias y profesionales!