Las tablas son formas de organizar la información en un documento y constan de una o más filas con dicha información. Cada fila se divide en celdas, y estas celdas pueden tener o no tener tamaño definido, así como la tabla en sí.
Para definir una tabla, se utiliza la etiqueta
<table>
a modo de contenedor, y para definir cada una
de sus filas, utilizamos la etiqueta <tr>
. Cada una
de las celdas en las filas de la tabla se enmarca con la etiqueta
<td>
, y se escribe <th>
en vez de
<td>
cuando la celda es un encabezado de la tabla. Una tabla simple se
escribe como en el ejemplo que sigue:
Ejemplo 3.5. Tabla simple con encabezado y datos
<table border="1"> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
El resultado de este fragmento de código se observa en la Figura 3.1, “Visualización de tabla simple con encabezado y datos”.
Para ajustar el ancho de la tabla en el documento, se puede
utilizar el atributo width
de la etiqueta
<table>
. El valor puede ser dado en píxeles o en
porcentaje. El porcentaje corresponde a la proporción de espacio entre
la margen izquierda y la derecha del documento a la hora de ser
visualizado.
Ejemplo 3.6. Tabla simple con encabezado y datos e indicación del ancho de la tabla
<table border="1" width="50%"> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
Se puede aumentar el espaciado entre el
texto y el borde de cada celda utilizando el atributo
cellpadding
de la etiqueta <table>
. El
valor asignado para este atributo, al igual que el valor del borde
está en píxeles.
Ejemplo 3.7. Tabla simple con encabezado y datos, con indicación de espaciado de texto al margen
<table border="1" cellpadding="10"> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
El resultado de este código de ejemplo es el de la Figura 3.3, “Visualización de tabla simple con encabezado y datos e indicación de espaciado entre el texto y el borde de las celdas”.
Figura 3.3. Visualización de tabla simple con encabezado y datos e indicación de espaciado entre el texto y el borde de las celdas
También se puede jugar con el espacio
entre una celda y otra por medio del atributo
cellspacing
de la misma etiqueta
<table>
.
Ejemplo 3.8. Tabla simple con encabezado y datos, con indicaciones de espaciado de texto al margen y espaciado entre celdas
<table border="1" cellpadding="10" cellspacing="5"> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
El resultado se observa en la Figura 3.4, “Visualización de tabla simple con encabezado y datos e indicación de espaciado entre el texto y borde de las celdas, además de espacio entre celdas”.
Figura 3.4. Visualización de tabla simple con encabezado y datos e indicación de espaciado entre el texto y borde de las celdas, además de espacio entre celdas
Para tener una tabla sin bordes, se le asigna el valor de 0 a
los atributos cellspacing
y border
. Esto es
útil cuando se utiliza una tabla como organización de la información
de todo el contenido del documento y no queremos que se vean las
divisiones de la tabla.
Por otra parte, se puede cambiar la alineación de los textos de las celdas de forma
diferente a como se hace por defecto por parte de los navegadores Web,
es decir, los títulos centrados y el contenido normal a la izquierda.
Este cambio se logra con el atributo align
y su valor
asociado en inglés (centro = center, izquierda =
left, derecha = right). Este
atributo lo tienen las etiquetas <tr>
y
<td>
. En el caso de que la alineación aplique para
toda la fila, se pone este atributo a la etiqueta
<tr>
respectiva, mientras que si la alineación
aplica solo para una celda, se coloca el atributo align a la etiqueta
<td>
señalada.
También se pueden dibujar celdas
combinadas, es decir, celdas que tomen más de una columna o
de una fila, ya sea que se quieran combinar celdas horizontal o
verticalmente, según sea el caso. Para lograr esto, se le agregan los
atributos colspan
(combinación horizontal) o
rowspan
(combinación vertical) a las etiquetas de datos
de la celda, es decir a las etiquetas <th>
o
<td>
según sea el caso. Los valores de estos
atributos son numéricos, e indican la cantidad de espacios a combinar
hacia la derecha (en el caso horizontal) o hacia abajo (en el caso
vertical). Veamos esto aplicado en un ejemplo:
Ejemplo 3.9. Tabla avanzada con aplicación de alineación de textos y celdas combinadas
<table border="1" width="50%"> <tr align="center"><th rowspan="2">Nombre</th><th colspan="3">Notas</th></tr> <tr align="center"><th>Nota 1</th><th>Nota 2</th><th>Nota 3</th></tr> <tr align="center"><td>Pedro Pérez</td><td>4.5</td><td>3.8</td><td>4.2</td></tr> <tr align="center"><td>Juan Gómez</td><td>2.5</td><td>4.5</td><td>4.3</td></tr> </table>
Esta tabla se vería en un navegador como aparece en la Figura 3.5, “Visualización de tabla avanzada con alineación de texto y combinación de celdas”.
Teniendo en cuenta que la navegación en Internet también es posible para personas con problemas de la vista, entre otros, se puede agregar información a las tablas para ser interpretadas por estas personas más fácilmente, aunque en algunos casos también aplique para personas sin problemas visuales.
Por ejemplo, se puede agregar un título a la tabla, como los que
aparecen en las tablas de este documento, diciendo básicamente de qué
se trata la tabla. Esto se logra introduciendo una etiqueta
<caption>
al interior de la tabla, justo antes de
comenzar a describir las filas y sus celdas. Por defecto este título
aparecerá en la parte superior de la tabla, como aparece en el ejemplo
a continuación. Para colocar este título en la parte inferior, se
utiliza el atributo align="bottom"
al interior de la
etiqueta <caption>
.
Ejemplo 3.10. Tabla simple con título
<table border="1" width="50%"> <caption>Lista de estudiantes de la clase</caption> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
Además del título, se puede agregar un resumen a la tabla, que no se visualiza, pero
sí es leído en los navegadores para personas con problemas de ceguera.
Este resumen se incluye como valor del atributo summary
en la etiqueta <table>
.
Ejemplo 3.11. Tabla simple con título y resumen
<table border="1" width="50%" summary="Información de los estudiantes: nombre, edad"> <caption>Lista de estudiantes de la clase</caption> <tr><th>Nombre completo</th><th>Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>
Asimismo, se puede agregar información adicional a las celdas,
especialmente cuando son encabezados en columnas o filas. La
información que se introduce le dice a navegadores especiales que
dicha celda es el encabezado para la fila o para la columna según el
caso. A esto se le denomina alcance de la
celda, y se describe en el código con el atributo
scope
de las celdas, es decir, las etiquetas
<th>
o <td>
, según el
caso.
Ejemplo 3.12. Tabla simple con título, resumen y alcance de celdas de encabezado
<table border="1" width="50%" summary="Información de los estudiantes: nombre, edad"> <caption>Lista de estudiantes de la clase</caption> <tr><th scope="col">Nombre completo</th><th scope="col">Edad</th></tr> <tr><td>Pedro Perez</td><td>25</td></tr> <tr><td>Marta Sanchez</td><td>24</td></tr> <tr><td>Juan Gómez</td><td>27</td></tr> </table>