8.12.09

Tablas básicas

Las etiquetas básicas para crear una tabla son:
  • <table>: Inserta una tabla.
  • <tr>: Inserta una fila de celdas.
  • <td>: Inserta una celda.
  • <th>: Inserta una celda de encabezado.
Los atributos básicos para crear una tabla son:
  • <width>: Define el ancho de la tabla. Puede darse en pixeles o en porcentaje.
  • <border>: Define el grosor del borde.
  • <align>: Define la ubicación de la tabla en el documento.
  • <bgcolor>: Define el color del fondo de la tabla.
Las anteriores son las características básicas para crear una tabla. Otras, como fuente del texto, tamaño de las letras, distancias entre los bordes y el contenido, etc, se nos darán por defecto.

 

Veamos un ejemplo de tabla elemental:

Las tablas más elementales de HTML se definen con tres etiquetas: <table> para crear la tabla, <tr> para crear cada fila y <td> para crear cada columna.

Éste es el código:

<table border="1" width="80%" align="center" bgcolor="#088A85">   <tr>   <td>Celda 1, fila 1</td>   <td>celda 2, fila 1</td>   <td>celda 3, fila 1</td>   <td>Celda 4, fila 1</td>   <td>Celda 5, fila 1</td>   </tr>   <tr>   <td>Celda 1, fila 2</td>   <td>celda 2, fila 2</td>   <td>celda 3, fila 2</td>   <td>Celda 4, fila 2</td>   <td>Celda 5, fila 2</td>   </tr>   <tr>   <td>Celda 1, fila 3</td>   <td>celda 2, fila 3</td>   <td>celda 3, fila 3</td>   <td>Celda 4, fila 3</td>   <td>Celda 3, fila 3</td>   </tr>   <tr>   <td>Celda 1, fila 4</td>   <td>celda 2, fila 4</td>   <td>celda 3, fila 4</td>   <td>Celda 4, fila 4</td>   <td>Celda 5, fila 4</td>   </tr> </table>

Y ésta es la tabla:
Celda 1, fila 1celda 2, fila 1celda 3, fila 1 Celda 4, fila 1Celda 5, fila 1
Celda 1, fila 2celda 2, fila 2celda 3, fila 2 Celda 4, fila 2Celda 5, fila 2
Celda 1, fila 3celda 2, fila 3celda 3, fila 3 Celda 4, fila 3Celda 3, fila 3
Celda 1, fila 4celda 2, fila 4celda 3, fila 4 Celda 4, fila 4Celda 5, fila 4



A continuación se muestra el código HTML de una tabla sencilla:

<table border="1" width="250px" align="center">
<tr align="center">
  <th><center><strong>Curso</strong></center></th>
  <th><center><strong>Horas</strong></center></th>
  <th><center><strong>Horario</strong></center></th>
</tr>

<tr>
  <td>CSS</td>
  <td>20</td>
  <td>16:00 - 20:00</td>
</tr>

<tr>
  <td>HTML</td>
  <td>20</td>
  <td>16:00 - 20:00</td>
</tr>

<tr>
  <td>Dreamweaver</td>
  <td>60</td>
  <td>16:00 - 20:00</td>
</tr>
</table>

Si ponemos este código en la edición HTML para crear una entrada en nuestro blog de Blogger, éste será el resultado:

Curso
Horas
Horario
CSS 20 16:00 - 20:00
HTML 20 16:00 - 20:00
Dreamweaver 60 16:00 - 20:00

Tabla de una columna con encabezado

Aunque las etiquetas <th> y </th> encierran un encabezado, algunos navegadores no lo ubican en el centro. Para asegurarnos que el encabezado quede en el centro lo encerramos entre las etiquetas <center> y </center>:

Éste es el código:

<table border="1" width="253px" align="center">
<tr>
<th>
<center>Enlaces</center>
</th>
</tr>
<tr>
<td>
XML en 10 puntos
</td>
</tr>
<tr>
<td>
Pautas de Accesibilidad al Contenido en la Web 1.0
</td>
</tr>
<tr>
<td>
Especificación del Modelo de Objetos del Documento (DOM), Nivel 1
</td>
</tr>
<tr>
<td>
Document Object Model (DOM) Level 2
</td>
</tr>
</table>

Así se verá la tabla:

Enlaces
XML en 10 puntos
Pautas de Accesibilidad al Contenido en la Web 1.0
Especificación del Modelo de Objetos del Documento (DOM), Nivel 1
Document Object Model (DOM) Level 2

La etiqueta <table> encierra todas las filas y columnas de la tabla. Las etiquetas <tr> (del inglés "table row") definen cada fila de la tabla y encierran todas las columnas. Por último, la etiqueta <td> (del inglés "table data cell") define cada una de las columnas de las filas, aunque realmente HTML no define columnas sino celdas de datos.

Al definir una tabla, se debe pensar en primer lugar en las filas que la forman y a continuación en las columnas. El motivo es que HTML procesa primero las filas y por eso las etiquetas <tr> aparecen antes que las etiquetas <td>.

Las tablas complejas suelen disponer de una estructura irregular que junta varias columnas para formar una columna ancha o une varias filas para formar una fila más alta que las demás. Para fusionar filas o columnas, se utilizan los atributos rowspan y colspan respectivamente.

Fusión de columnas

La siguiente es una tabla compleja en la que se han fusionado dos columnas simples para formar una columna más ancha:
Fila de una columna
Primera columna de una fila de dos Segunda columna de una fila de dos
Para obtener una tabla como la de la imagen anterior, se debe utilizar el siguiente código:

<table border="1" width="250px" align="center">
<tr>
  <th colspan="2">Fila de una columna</th>
</tr>

<tr>
  <td>Primera columna de una fila de dos</td>
  <td>Segunda columna de una fila de dos</td>
</tr>
</table>


La primera fila de la tabla está formada sólo por una columna, mientras que la segunda fila está formada por dos columnas. En principio, podría pensarse en utilizar el siguiente código HTML para definir la tabla:

<table>
<tr>
  <td>A</td>
</tr>

<tr>
  <td>B</td>
  <td>C</td>
</tr>
</table>


Sin embargo, si se utiliza el código anterior, el navegador visualiza de forma incorrecta la tabla, ya que las tablas en HTML deben disponer de una estructura regular. En otras palabras, todas las filas de una tabla HTML deben tener el mismo número de columnas. Por lo tanto, si se quieren mostrar menos columnas en una fila, se fusionan mediante el atributo colspan, que indica el número de columnas simples que va a ocupar una determinada celda.

En el ejemplo anterior, la celda de la primera fila debe ocupar el espacio de dos columnas simples, por lo que el código HTML debe ser:

<td colspan="2">Fila de una columna</td>.

Fusión de filas

De forma equivalente, si se quiere diseñar una tabla HTML que fusiona filas, como la siguiente:

A: Primera fila fusionada C: Fila que fusiona A y B
B: Segunda fila fusionada

El código HTML que se debe utilizar es el siguiente:

<table border="1" width="250px" align="center">
<tr>
  <td>A: Primera fila fusionada</td>
  <td rowspan="2">C: Fila que fusiona A y B</td>
</tr>

<tr>
  <td>B: Segunda fila fusionada</td>
</tr>
</table>


De forma análoga a la fusión de columnas del ejemplo anterior, la fusión de filas debe indicarse de forma especial. Como las tablas HTML tienen que ser regulares, todas las columnas deben tener el mismo número de filas. Así, si en el ejemplo anterior se utilizara el siguiente código:

<table>
<tr>
  <td>A</td>
  <td>B</td>
</tr>

<tr>
  <td>C</td>
</tr>
</table>


La tabla anterior no se visualizaría correctamente. Como la segunda columna de la tabla ocupa el espacio de las dos filas, el código HTML debe indicar claramente que esa celda va a ocupar dos filas, de manera que todas las columnas de la tabla cuenten con el mismo número de filas.

Utilizando los atributos rowspan y colspan, es posible diseñar tablas tan complejas como las que se muestran en los siguientes ejemplos.

Fusión de múltiples columnas:

A B
C D E
F
G H I J

El código HTML necesario para fusionar las columnas de la tabla anterior es el siguiente:

<table border="1" width="250px" align="center">
<tr>
  <td colspan="3">A</td>
  <td>B</td>
</tr>

<tr>
  <td>C</td>
  <td colspan="2">D</td>
  <td>E</td>
</tr>

<tr>
  <td colspan="4">F</td>
</tr>

<tr>
  <td>G</td>
  <td>H</td>
  <td>I</td>
  <td>J</td>
</tr>
</table>

Fusión de múltiples filas:

A B C D
E F G
H
I J K

El código HTML necesario para fusionar las filas de la tabla anterior es el siguiente:

<table border="1" width="250px"align="center">
  <tr>
    <td>A</td>
    <td>B</td>
    <td rowspan="3">C</td>
    <td>D</td>
  </tr>
  <tr>
    <td rowspan="2">E</td>
    <td>F</td>
    <td rowspan="3">G</td>
  </tr>
  <tr>
    <td>H</td>
  </tr>
  <tr>
    <td>I</td>
    <td>J</td>
    <td>K</td>
  </tr>
</table>
Índice Tablas
Tablas básicas
Tablas avanzadas
Tablas con esquinas redondeadas
Colorear esquinas redondeadas

3 comentarios :

▼▲ Ocultar / Mostrar comentarios
Comentario escrito por Anónimo #

Las tablas son de mucha importancia. Importante aprender a utilizarlas.
Saludos,

Luis Miguel.

Comentario escrito por daycare-web : #

Muchas gracias ha sido de mucha utilidad y bien detallado.

Comentario escrito por Pedro Pablo Pachón : #

Con mucho gusto DaycareWeb.

Este blog ya cumplió su ciclo, por esta razón, aunque sigue a disposición de los usuarios, no se harán más publicaciones ni se atenderán más consultas. La respuesta a su inquietud puede estar entre los comentarios hechos hasta aquí.

El autor.