TABLAS


   






8.TABLAS

Las tablas son un modo sencillo de disponer el texto en columnas o de añadir un titular a una ilustración, pero hay más aplicaciones. La etiqueta <TABLE> puede ser una poderosa herramienta de formato. Se puede hacer uso de la etiqueta
<TABLE> para ubicar texto e imágenes con precisión, en prácticamente casi cualquier lugar de una página.

Estructura de una tabla


Vamos a ver ordenadamente (de fuera hacia dentro) las etiquetas necesarias para confeccionar las tablas.
<TABLE>
[resto de las etiquetas]
</TABLE>
  Es la etiqueta general, que engloba a todas las demás.

<TABLE BORDER="n">
[resto de las etiquetas]
</TABLE>
  Presenta los datos tabulados con un borde, haciendo las tablas más atractivas, y el grosor es de n pixeles.

<TR>
[etiquetas de las distintas celdas de la primera fila]
</TR>
  Permite formar cada fila de la tabla. Hay que repetirla tantas veces como filas queremos que tenga la tabla.

<TD>
[contenido de cada celda (imágenes, texto, etc.)]
</TD>
  Permite formar las celdas que contendrá cada fila. Hay que repetirlas tantas veces como celdas deba tener la fila.

<TH>
[encabezamiento de tabla]
</TH>
  Es utilizada para colocar encabezamientos en negrita sobre las columnas

Ejemplo

<HTML>
<HEAD>
<TITLE> Página de prueba para tablas </TITLE>
</HEAD>
<BODY>
<TABLE BORDER>
<TR>
<TH>Columna 1</TH><TH>Columna 2</TH><TH>Columna 3</TH>
<TD>fila1-celda1</TD><TD>fila1-celda2</TD><TD>fila1-celda3</TD>
</TR>
<TR>
<TD>fila2-celda1</TD><TD>fila2-celda2</TD><TD>fila2-celda3</TD>
</TR>
</TABLE>
<BR> [Aquí van las etiquetas que visualizan la página]
</BODY>
</HTML>
Si el numero de celdas de una fila es distinto al de otra el navegador forma el número de filas y columnas que haga falta, dejando espacios en blanco en las filas que tengan menos celdas.

Titular de tabla


Se puede añadir un titulo a la tabla, es decir un texto situado encima de la tabla que indica cuál es su contenido. Se consi- gue con la etiqueta <CAPTION> y </CAPTION>. Por ejemplo:
<CAPTION> Esta es mi primera tabla </CAPTION>
<CAPTION ALIGN="top">Título</CAPTION>  Coloca el título sobre la tabla.
<CAPTION ALIGN="bottom">Título</CAPTION>    Coloca el título bajo la tabla.

Contenido de las celdas


Solo se ha puesto hasta ahora en el ejemplo, texto normal dentro de las distintas celdas. Pero se puede poner en ellas cual- quier otro elemento de los que van en un documento HTML, como imágenes, enlaces, etc. No hay más que poner dentro de la etiqueta de la celda la etiqueta correspondiente a una imagen, un enlace, etc.

Ejemplos

a)  Con una imagen
<TABLE BORDER>
<TR>
<TD> <IMG SRC="imagen.gif"> </TD>
</TR>
</TABLE>

b)   Con un enlace
<TABLE BORDER>
<TR>
<TD><A HREF="index.html"> Mi página principal </A></TD>
</TR>
</TABLE>



Posicionamiento del contenido dentro de la celda


Normalmente, el contenido de una celda está alineado a la izquierda. Pero se puede cambiar esto añadiendo dentro de la etiqueta de la celda los siguientes atributos:
<TD ALIGN="center"> Al centro </TD>
<TD ALIGN="right"> A la derecha </TD>
<TH ALIGN="left"> A la izquierda </TH>

El alineamiento por defecto en el sentido vertical es en el medio. También se puede cambiar, añadiendo dentro de la eti- queta de la celda los siguientes atributos:
<TD VALIGN="top"> Arriba </TD>
<TD VALIGN="bottom"> Abajo </TD>

Variando las dimensiones de la tabla


El navegador se encarga normalmente de dimensionar el tamaño total de la tabla de acuerdo con el número de filas, de columnas, por el contenido de las celdas, espesor de los bordes, etc.
A veces nos puede convenir forzarle para que la tabla tenga unas dimensiones totales mayores que las que le corresponden, tanto en anchura como en longitud. Esto se consigue añadiendo dentro de la etiqueta de la tabla los atributos WIDTH y HEIGHT igual a un porcentaje de la dimensión de la pantalla, o a una cifra que equivale al número de pixels.
Por ejemplo, si colocamos:
<TABLE WIDTH="60%">
O, por ejemplo ponemos:
<TABLE HEIGHT="200">

Celdas que abarcan a otras varias


A veces puede interesarnos que una celda se extienda sobre otras varias. Esto se consigue añadiendo dentro de la etiqueta de la celda los atributos COLSPAN="número" para extenderse sobre un número determinado de columnas, o ROWSPAN="número" para extenderse verticalmente sobre un número determinado de filas.
Por ejemplo, en la primera tabla del ejemplo anterior vamos a añadir una fila con una sola celda, que abarca a dos colum- nas:
<TR> <TD COLSPAN="2"> Celda sobre 2 columnas </TD> <TR>
O, en la misma tabla, vamos a añadir una celda en la primera fila, pero que abarque también a la siguiente:
<TD ROWSPAN="2"> Celda junto a 2 filas </TD>

Color de fondo en las tablas


Podemos conseguir que las tablas tengan un color de fondo, siguiendo un procedimiento totalmente análogo al empleado para que una página tenga un color de fondo uniforme (según vimos en el capítulo 7). Para ello debemos utilizar el atri- buto BGCOLOR="#XXYYZZ", visto en dicho capítulo.
Se puede conseguir así:
<TABLE BORDER BGCOLOR="#XXYYZZ">
[resto de las etiquetas]
</TABLE>                  La totalidad de la tabla tendrá un color de fondo.

<TD BGCOLOR="#XXYYZZ">
[contenido de la celda]
</TD>                     Solo una celda tendrá color de fondo, distinto al resto.

Imágenes de fondo en las tablas


El Explorer de Microsoft soporta la colocación de imágenes de fondo en el interior de las tablas, de una manera análoga a como se hace en una página (según vimos en el capítulo 7).
Para ello debemos, utilizar el atributo BACKGROUND="imagen.gif" o BACKGROUND="imagen.jpg", visto en dicho capítulo.
Si se utiliza dentro de la etiqueta <TABLE> la imagen en cuestión se multiplicará detrás de todas las celdas. (Con el Netscape no se verá ninguna imagen de fondo, sólo con el Explorer)
Si, por el contrario, sólo se pone este atributo dentro de la etiqueta de una celda concreta (<TD> o <TH>), entonces la imagen de fondo se verá sólo en esa celda.

Separación entre las celdas de una tabla


Por defecto, la separación entre las distintas celdas de una tabla es de dos pixels. Pero se puede variar esto con el atributo
CELLSPACING, que se pone dentro de la etiqueta TABLE.
Por ejemplo, para obtener una separación de 20 pixels entre celdas ponemos:
<TABLE BORDER CELLSPACING="20">
A primera vista parece como si esto fuera lo mismo que si hubiéramos aumentado el espesor de los bordes. Pero para comprobar que no es así, hagamos que en el caso anterior, tenga además unos bordes de 5 de espesor:
<TABLE BORDER="5" CELLSPACING="20">

Separación entre el borde y el contenido dentro de las celdas


Por defecto, la separación entre el borde y el contenido dentro de las celdas es de un pixel. Se puede cambiar esto con el atributo CELLPADDING, que se pone dentro de la etiqueta TABLE.
Por ejemplo, para obtener una separación de 20 pixels entre el contenido y los bordes, dentro de cada celda:
<TABLE BORDER CELLPADDING="20">

Se puede combinar este atributo con CELLSPACING (visto en el apartado anterior).
Por ejemplo, una tabla con bordes de 5 de espesor, separación entre celdas de 15 y separación del contenido con respecto a los bordes de las celdas de 20, lo obtendríamos con:
<TABLE BORDER="5" CELLSPACING="15" CELLPADDING="20">