...

Tablas HTML

En este tema vamos a ver cómo trabajar con tablas. Podremos insertar tablas, filas y columnas, y modificar sus propiedades.
Hoy en dia, la mayoría de las páginas web se basan en tablas, ya que resultan de gran utilidad al mejorar notablemente las opciones de diseño.
Todos los objetos se alinean por defecto a la izquierda de las páginas web, pero gracias a las tablas es posible distribuir el texto en columnas, colocar imágenes al lado de un bloque de texto, y otra serie de cosas que sin las tablas serían imposibles de realizarse.

Tabla <table>

Las tablas están formadas por celdas, que son los recuadros que se obtienen como resultado de la intersección entre una fila y una columna.


imagen y texto


COLUMNA


Texto dentro de una celda







FILA
CELDA

Para crear una tabla hay que insertar las etiquetas <table> y </table>. Entre dichas etiquetas habrá que especificar las filas y columnas que formarán la tabla.

Fila <tr>

Es necesario insertar las etiquetas <tr> y </tr> por cada una de las filas de la tabla. Estas etiquetas deberán insertarse entre las etiqetas <table> y </table>.
Por ejemplo, para crear una tabla con cinco filas escribiríamos:
<table>
  <tr
>...</tr>  <tr>...</tr>
  <tr>...</tr>
  <tr>...</tr>
  <tr>...</tr>
</table>

Columna o celda <td>

Para crear una tabla no basta con especificar el número de filas, es necesario también especificar el número de columnas.
Una celda es el resultado de la intersección entre una fila y una columna, por lo que podremos especificar el número de celdas por fila, que equivale a especificar el número de columnas por fila.
Es necesario insertar las etiquetas <td> y </td> por cada una de las celdas que compongan cada una de las filas de la tabla. Por lo tanto, habrá que insertar esas etiquetas entre las etiquetas <tr> y </tr>.
Entre las etiquetas <td> y </td> se podrá especificar el contenido de cada una de las celdas. Por ejemplo, para insertar la siguiente tabla:
SabadoDomingo
Curso HTMLCurso Dreamweaver
Curso FrontpageCurso Flash
Habría que escribir:
<table border="1">
  <tr>
    <td>
Sabado</td>
    <td>
Domingo</td>
  </tr>
  <tr>
    <td>
Curso HTML</td>
    <td>
Curso Dreamweaver</td>
  </tr>
  <tr>
    <td>
Curso Frontpage</td>
    <td>
Curso Flash</td>
  </tr>
</table> 

Formato de la tabla

Es posible modificar los siguientes atributos de una tabla:
Atributo
Significado
Posibles valores
width
ancho de la tabla
un número, acompañado de % cuando se desee que sea en porcentaje
height
altura de la tabla
un número, acompañado de % cuando se desee que sea en porcentaje
cellpadding
espacio entre el contenido de las celdas y el borde
un número
cellspacing
espacio entre celdas
un número
border
grosor del borde
un número
align
alineación de la tabla dentro de la página
left (izquierda)
right (derecha)
center (centro)
bgcolor
color de fondo
número hexadecimal
background
imagen de fondo
número hexadecimal
bordercolor
color del borde
número hexadecimal

Por ejemplo, para modificar la tabla de la página anterior para que quedase como la siguiente:
SabadoDomingo
Curso HTMLCurso Dreamweaver
Curso FrontpageCurso Flash
Habría que escribir:
<table width="50%" border="2" align="center" cellspacing="0" bordercolor="#000000" bgcolor="#FFCC99">
  
...
</table>
Con esto indicamos que el ancho (width) de la tabla debe ocupar el 50% del ancho de la ventana (lo puedes comprobar cambiando el ancho de la ventana de tu navegador y verás que el ancho de la tabla varía para ocupar siempre la mitad de la ventana), que el borde (border) tiene un grosor de dos píxeles (es más ancho que las separaciones internas de la tabla que tienen grosor 1), que la tabla está alineada al centro (center) de la ventana, que no hay espacio entre las celdas (cellspacing="0"), que el borde la tabla es negro (#000000) y el fondo naranja (#FFCC99).

Formato de las celdas

Es posible modificar los siguientes atributos de una celda:
Atributo
Significado
Posibles valores
width
ancho de la tabla
un número, acompañado de % cuando se desee que sea en porcentaje
height
altura de la tabla
un número, acompañado de % cuando se desee que sea en porcentaje
align
alineación horizontal del contenido de la celda
left (izquierda)
right (derecha)
center (centro)
valign
alineación vertical del contenido de la celda
baseline (línea de base)
bottom (inferior)
middle (medio)
top (superior)
bgcolor
color de fondo
número hexadecimal
background
imagen de fondo
número hexadecimal
bordercolor
color del borde
número hexadecimal

También es posible modificar estos atributos de toda una fila, especificándolos en la etiqueta <tr>, en lugar de en la etiqueta <td>.
Hay que tener en cuenta que los atributos tienen más prioridad cuando son establecidos para una celda que cuando son establecidos para una fila completa. Al mismo tiempo, tienen más prioridad los atributos establecidos para una fila que los establecidos para toda la tabla.
Por ejemplo, si escribiéramos el siguiente código:
<table width="50%" border="2" align="center" cellspacing="0" bordercolor="#000000" bgcolor="#FFCC99">
  <tr 
align="center" bgcolor="#0099CC">
    <td>
Sabado</td>
    <td 
bgcolor="#66CC99">Domingo</td>
  </tr>
  <tr>
    <td>
Curso HTML</td>
    <td>
Curso Dreamweaver</td>
  </tr>
  <tr>
    <td
>Curso Frontpage</td>
    <td>
Curso Flash</td>
  </tr>
</table>
Obtendríamos la siguiente tabla:
SabadoDomingo
Curso HTMLCurso Dreamweaver
Curso FrontpageCurso Flash

Se ha establecido el color naranja como fondo de toda la tabla, pero con la línea de código <tr align="center" bgcolor="#0099CC"> se ha establecido el color azul como color de fondo de la primera fila, por lo que dicha fila se mostrará de color azul, y no de color naranja. Al mismo tiempo, se ha cambiado el color de la segunda celda de la primera fila por el color verde, a través de la línea <td bgcolor="#66CC99">Domingo</td> por lo que esta fila en vez de ser azul será verde, los atributos de celda tienen prioridad sobre los de la fila.
Existe otro atributo que puede establecerse sobre las celdas. Se trata del atributo nowrap, que hace que el contenido de la celda no se ajuste de manera automática al ancho de la columna sino que el ancho de la celda se adapta al ancho del contenido para que el contenido ocupe una sólo fila. Este atributo no toma ningún valor, simplemente se añade o no a las etiqueta <td>

Encabezado de columna <th>

Las etiquetas <td> y </td> se utilizan para definir las celdas de cada una de las filas, pero podemos poner en su lugar las etiquetas <th> y </th>.
Para la etiqueta <th> es posible especificar los mismos atributos que para la etiqueta <td>, pero esta nueva etiqueta hace que el texto de la celda aparezca centrado y en negrita, por lo que se utiliza para definir los encabezados o títulos de las columnas.
Por ejemplo, si escribiéramos el siguiente código:
<table width="50%" border="1" align="center">
  <tr
>
    <th>
Sabado</td>
    <th
>Domingo</td>
  </tr>
  <tr>
    <td>
Curso HTML</td>
    <td>
Curso Dreamweaver</td>
  </tr>
  <tr>
    <td
>Curso Frontpage</td>
    <td>
Curso Flash</td>
  </tr>
</table>
Obtendríamos la siguiente tabla:
SábadoDomingo
Curso HTMLCurso Dreamweaver
Curso FrontpageCurso Flash

Título de tabla <caption>

No solamente es posible establecer títulos para las columnas, también es posible establecer un título para la tabla mediante las etiquetas <caption> y </caption>.
Estas etiquetas han de ir después de la etiqueta <table>, y puede especificarse el valor de los atributos align (con los valores bottomcenterleftright y top) y valign (con los valores bottom y top).
Por ejemplo, si escribiéramos el siguiente código:
<table width="50%" border="1" align="center">
  <caption 
align="right" valign="top">Titulo de la tabla<tr>
  <tr>
    <th>
Sabado</td>
    
...
  </tr>
</table>
Obtendríamos la siguiente tabla con título:
Titulo de la tabla
SábadoDomingo
Curso HTMLCurso Dreamweaver
Curso FrontpageCurso Flash
El título aparece ajustado a la margen derecho de la tabla (align="right") y encima de la tabla (valign="top"). 

Combinar celdas

Para las etiquetas <td> y <th> existen los atributos colspan y rowspan, que se utilizan para combinar celdas.
A través del atributo colspan se especifica el número de columnas por las que se extenderá la celda, y a través del atributo rowspan se especifica el número de filas por las que se extenderá la celda.
Para que quede más claro, vamos a ver un ejemplo de su uso. Por ejemplo, para insertar la siguiente tabla:
DIFERENCIAS ENTRE EL PERRO Y EL HOMBRE
DIFERENCIASPERROHOMBRE
PEQUEÑOGRANDE
Duración crecimiento10 meses18 a 24 meses16 años
Tiempo de gestación58 a 63 días9 meses
Duración de vida del pelo/cabello1 año2 a 7 años
Habría que escribir el siguiente código:
<table width="575" border="2" cellspacing="2">
  <tr align="center" valign="middle">
    <th colspan="4">DIFERENCIAS ENTRE EL PERRO Y EL HOMBRE</th>
  </tr>
  <tr align="center" valign="middle">
    <th rowspan="2">DIFERENCIAS</th>
    <th colspan="2">PERRO</th>
    <th rowspan="2">HOMBRE</th>
  </tr>
  <tr align="center" valign="middle">
    <th>PEQUE&Ntilde;O</th>
    <th>GRANDE</th>
  </tr>
  <tr align="center" valign="middle">
    <td>Duraci&oacute;n crecimiento</td>
    <td>10 meses</td>
    <td>18 a 24 meses</td>
    <td>16 a&ntilde;os</td>
  </tr>
  <tr align="center" valign="middle">
    <td>Tiempo de gestaci&oacute;n</td>
    <td colspan="2">58 a 63 d&iacute;as</td>
    <td>9 meses</td>
  </tr>
  <tr align="center" valign="middle">
    <td>Duraci&oacute;n de vida del pelo/cabello</td>
    <td colspan="2">1 a&ntilde;o</td>
    <td>2 a 7 a&ntilde;os</td>
  </tr>
</table>
Vamos a explicar un poco cómo funciona dicho código, aunque sería conveniente que primero intentaras entender el código comparándolo con la tabla que de él se obtiene.
En primer lugar, tenemos que ver el número máximo de columnas que ha de tener la tabla. En este caso serían cuatro columnas. Para saber el número de columnas total de la tabla, tenemos que fijarnos en el número total de celdas que podemos obtener por fila al trazar las líneas verticales que separan las columnas entre sí.
En la primera fila, la línea  <th colspan="4">DIFERENCIAS ENTRE EL PERRO Y EL HOMBRE</th> indica que la celda ocupará cuatro columnas de la tabla (la columna actual y las 3 siguientes). Como la tabla tiene como mucho cuatro columnas y el atributo colspan de la celda vale cuatro, no hay que definir más celdas para esa misma fila.
En la segunda fila, la línea  <th rowspan="2">DIFERENCIAS</th> indica que la celda ocupará dos filas de la tabla (la actual y la siguiente). Lo mismo ocurre con la línea <th rowspan="2">HOMBRE</th>.
Ya hemos definido dos celdas de la segunda fila. Sabemos que la tabla tiene como mucho cuatro columnas, por lo que como en la línea <th colspan="2">PERRO</th> el atributo colspan vale dos, ya tenemos las cuatro celdas.
En la segunda fila hemos definido dos celdas que se expanden por dos filas, por lo que en la tercera fila habrá que definir solamente dos celdas, y no cuatro, ya que dos de sus celdas se corresponden con las definidas en la fila anterior.
Las dos nuevas celdas son <th>PEQUE&Ntilde;O</th> y <th>GRANDE</th>.
El uso de los atributos colspan y rowspan puede resultar algo complicado al principio. Es cuestión de práctica. 

No hay comentarios:

Publicar un comentario