NOTA: La etiqueta td sólo se puede colocar dentro de una tr.
Con width podemos indicar al navegador la anchura que queremos para una celda en concreto. La anchura podemos establecerla en pixels o en tantos por ciento. Un ejemplo en pixels:
<table border=1> <tr> <td width=100>Ancho = 100 </td> </tr> </table>
Acho = 100 |
Y el mismo ejemplo en tanto por ciento:
<table border=1> <tr> <td width="50%">Acho = 50% del ancho de la tabla </td> </tr> </table>
Esto del % no funciona igual en todos los navegadores y los antiguos no lo admiten. Así que si lo usamos debemos comprobar que se ve bien en varios navegadores.
Por otra parte es aconsejable poner la misma anchura para todas las celdas de una misma columna. Si ponemos distintas anchuras pueden tenerse resultados extraños, o en el mejor de los casos se adaptan todas a la de mayor anchura.
Veamos un ejemplo:
<table border=1><tr> <td width=100>Ancho = 100 </td> </tr> <tr> <td width=130>Ancho = 130 </td> <tr> <td width=200>Ancho = 200 </td> </tr></table>
Y ahora comprueba cómo se ve en tu navegador:
Ancho = 100 |
Ancho = 130 |
Ancho = 200 |
Para comparar aquí tienes una celca de anchura=100:
Acho = 100 |
En mi navegador (Netscape 4.7) todas las celdas toman el ancho de la más grande (la de 200 pixels).
Con height podemos especificar la altura en pixels de una celda.
<table border=1> <tr> <td heigth=100>Alto = 100 </td> </tr> </table>
Alto = 100 |
Al igual que con width no conviene poner distintas alturas para celdas de la misma fila.
Con align le decimos al navegador cómo queremos colocar el contenido de la celda: a la izquierda (left, es la opción predeterminada), a la derecha (right) o centrada (center):
<table border=1 width="70%" align=center> <tr> <td align=right>Texto a la dcha </td> </tr> </table>
Texto a la dcha |
Con valign controlamos la alineación vertical dentro de las celdas. Las posibles opciones son: top, middle, bottom.
Veamos en un ejemplo el comportamiento normal si tenemos en una fila una celda más alta que las otras:
Esta primera celda es más larga que la segunda. Por eso la altura de la fila se acomoda a ésta. La siguiente celda aparece centrada. Este es el comportamiento normal. | Efectivamente esta línea es más corta. | Esta también es más corta. |
Si usamos top en una celda de las que son más cortas el texto quedará arriba:
<TABLE align=center border=1 width="40%"> <TR> <td> Esta primera celda es ...(bla,bla) </td> <td valign=top> Efectivamente esta línea es más corta. </td> <td> Esta también es más corta. </td> </TR> </TABLE>
Esta primera celda es más larga que la segunda. Por eso la altura de la fila se acomoda a ésta. La siguiente celda aparece centrada. Este es el comportamiento normal. | Ahora esta queda arriba. | Esta también es más corta. |
Con bottom se produce el efecto contrario, la celda queda alineada abajo:
Esta primera celda es más larga que la segunda. Por eso la altura de la fila se acomoda a ésta. La siguiente celda aparece centrada. Este es el comportamiento normal. | Ahora esta queda abajo. | Esta también es más corta. |
Y con middle quedan centradas verticalmente.
Tanto el atributo align como valign se pueden especificar en tr en vez de en td y se aplicará a toda la fila:
<TABLE align=center border=1 width="40%"> <TR valign=bottom> <TD> Esta primera celda es... (bla,bla) </TD> <TD> Ahora esta queda abajo. </TD> <TD> Esta también es más corta. </TD> </TR> </TABLE>
Al poner valign=bottom en tr todas las celdas de la fila quedan alineadas abajo:
Esta primera celda es más larga que la segunda. Por eso la altura de la fila se acomoda a ésta. La siguiente celda aparece centrada. Este es el comportamiento normal. | Ahora esta queda abajo. | Esta también es más corta. |
Cuando hacemos una tabla como hemos visto hasta ahora tenemos que todas las celdas en una misma columna ocupan el mismo espacio. Pero existe una forma de hacer que una celda ocupe más de una columna: usando colspan.
Aquí tenemos una tabla normal:
<table border=1 width="60%" align=center> <tr align=center> <td>Celda 1,1 </td> ... <td>Celda 1,4 </td> </tr> <tr align=center> <td>Celda 2,1 </td> ... <td>Celda 2,4 </td> </tr> </table>
que se muestra así:
Celda 1,1 | Celda 1,2 | Celda 1,3 | Celda 1,4 |
Celda 2,1 | Celda 2,2 | Celda 2,3 | Celda 2,4 |
Pero ahora supongamos que queremos que la celda 1,1 ocupe el sitio de la 1,1 y la 1,2, es decir que quede así:
Celda 1,1 | Celda 1,3 | Celda 1,4 | |
Celda 2,1 | Celda 2,2 | Celda 2,3 | Celda 2,4 |
Esto se consigue con el siguiente código usando colspan:
<table border=1 width="60%" align=center> <tr align=center> <td colspan=2>Celda 1,1 </td> <td>Celda 1,3 </td> <td>Celda 1,4 </td> </tr> <tr align=center> <td>Celda 2,1 </td> <td>Celda 2,2 </td> <td>Celda 2,3 </td> <td>Celda 2,4 </td> </tr> </table>
Fíjate que como la celda 1,1 ocupa dos columnas debemos quitar alguna, en este caso hemos quitado la 1,2. Recuerda que todas las filas deben tener el mismo número de columnas. Y las celdas que ocupan dos columnas cuentan como dos. Si no tenemos cuidado con esto podemos tener resultados extraños como éste:
Celda 1,1 | Celda 1,2 | Celda 1,3 | Celda 1,4 | |
Celda 2,1 | Celda 2,2 | Celda 2,3 | Celda 2,4 |
Con rowspan podemos hacer lo mismo que con colspan pero con filas. Podemos hacer que una celda ocupe dos o más filas:
Celda 1,1 | Celda 1,2 | Celda 1,3 | Celda 1,4 |
Celda 2,2 | Celda 2,3 | Celda 2,4 |
Y esto se consigue usando rowspan así:
<table border=1 width="60%" align=center> <tr align=center> <td rowspan=2>Celda 1,1 </td> <td>Celda 1,2 </td> <td>Celda 1,3 </td> <td>Celda 1,4 </td> </tr> <tr align=center> <td>Celda 2,2 </td> <td>Celda 2,3 </td> <td>Celda 2,4 </td> </tr> </table>
Y de nuevo tenemos que tener cuidado con el número de celdas que ponemos. En este caso debíamos eliminar la 2,1 por que si no podríamos tener algo como:
Celda 1,1 | Celda 1,2 | Celda 1,3 | Celda 1,4 |
Celda 2,1 | Celda 2,2 | Celda 2,3 | Celda 2,4 |
Cuando tenemos un texto demasiado largo éste se corta y se acomoda en varias líneas. Sin embago, si usamos el atributo nowrap el texto se mostrará todo en una línea:
Esta es una celda larga y el texto aparece en dos líneas. Aquí no usamos nowrap. | Esta celda no usa nowrap. | Esta celda tampoco usa nowrap. |
Esta es una celda larga y el texto aparece todo en la misma línea. Usamos nowrap. | Esta celda no usa nowrap. | Esta celda tampoco usa nowrap. |
La forma de usar nowrap es poner en la celda deseada:
<TD nowrap>