Curso de Diseño y maquetación web

Maquetación de tablas

Estructura

thead, th, tbody, tr, td
cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
<-- thead
<-- tbody

Estilizando tablas

Espaciado entre celdas

Las tablas nos vienen con un formato predefinido que separa las celdas generando huecos muy feos. Si queremos colapsar esos espacios usaremos 'border-collapse: collapse' en lugar de 'separate':

cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td

No obstante si mantenemos 'border-collapse: separate' y añadimos 'border-spacing: 1em' podemos controlar el espaciado entre celdas:

cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th cabeceras th
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td
contenido en td contenido en td contenido en td contenido en td contenido en td contenido en td

Atributos de tabla

Estos atributos están en desuso desde la estandarización que trajo consigo HTML5. No obstante se siguen utilizando para determinados casos, como puede ser la maquetación de newsletters.

Atributos de <table>
Border
Esta tabla tiene un atributo 'border="1"'.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo 'border="0"'
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo 'border=" "' vacío. Por tanto muestra el valor por defecto, con bordes.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo 'border="0"'. Pero por CSS se le está aplicando la regla 'border:2px solid #cdcdcd;'. Si queremos bordes en el resto de la tabla hay que dar estilos a las etiquetas <th> y <td>
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido

Atributos de <table> de <th> y <td>
align
Esta tabla tiene un atributo align="left". La celda <td> debajo de la de contenido más largo también lleva un align="left"
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo align="center". La celda <td> debajo de la de contenido más largo también lleva un align="center"
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo align="right". La celda <td> debajo de la de contenido más largo también lleva un align="right"
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Atributos de <table> de <th> y <td>
colspan & rowspan: Unificación de celdas.

Los atributos colspan y rowspan permiten unir una celda con las celdas contiguas, tanto horizontal como verticalmente. El valor de colspan indica la cantidad de celdas unidas en horizontal y el valor de rowspan indica la cantidad de celdas unidas en vertical.

Esta tabla tiene un atributo colspan="2" en la celda destacada por lo que ocupa 2 columnas dentro de su fila. Para evitar un descuadre se ha eliminado una celda en esa fila.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo rowspan="3" en la celda destacada por lo que ocupa 3 filas dentro de su columna. Para evitar un descuadre se han eliminado una celda de las dos filas siguientes.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un atributo rowspan="3" y colspan="4" en la celda destacada, por lo que esa celda ocupa 3 filas y 4 columnas. Para evitar un descuadre se han eliminado las celdas sobrantes tras unificarlas.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido
contenido contenido
contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Etiquetas de <table> de <th> y <td>
Colgroup & col: Selectores de columnas

La etiqueta <colgroup> especifica un grupo de una o más columnas en una tabla para formatear. La etiqueta <colgroup> es útil para aplicar estilos a columnas enteras, en lugar de repetir los estilos para cada celda, para cada fila.

Nota: La etiqueta <colgroup> debe ser hija de un elemento <table>, después de cualquier elemento <caption> y antes de cualquier elemento <thead>, <tbody>, <tfoot> y <tr>.

Esta tabla tiene un elemento <col span="2"> dentro de un elemento <colgroup> que está antes de la tabla y que aplica el color de fondo destacado a las dos primeras columnas. Pero también tiene otro elemento <col span="4"> que le aplica un estilo en línea con el fondo gris.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un elemento <col span="1"> dentro de un elemento <colgroup> que le aplica el color de fondo destacado. Se lo aplica a la 4ª columna porque antes hay 3 elementos <col> sin atributo que les aplique regla alguna.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un elemento <col> para cada columna, dentro de un elemento <colgroup>. Todos ellos se llevan style="width: 15%;" para darle a todas las columnas el mismo ancho relativo.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido más largo contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Fijar elementos de la tabla
Fijar la cabecera y/o la 1ª columna

En muchas ocasiones nos piden fijar la cabecera u otros elementos de una tabla cuando hay mucho contenido y se genera un scroll.

Esta tabla tiene la cabecera fija. Se le da propiedades al elementos 'th'
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene la primera columna fija. Se le da propiedades al primer elemento 'td' de cada 'tr'.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
Esta tabla tiene un elemento <col> para cada columna, dentro de un elemento <colgroup>. Todos ellos se llevan style="width: 15%;" para darle a todas las columnas el mismo ancho relativo.
cabeceras cabeceras cabeceras cabeceras cabeceras cabeceras
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido
contenido contenido contenido contenido contenido contenido