Volver al índice Tablas


Estructura de una tabla (<table>)

Una tabla XHTML (<table>) es una rejilla rectangular de celdas, formada por los siguientes elementos:

Esto es la leyenda Leyenda (<caption>)
    ...    
... ... ... ... ...
    ...    
Cabecera de tabla (<thead>)
    ...    
... ... ... ... ...
    ...    

...

    ...    
... ... ... ... ...
    ...    
Cuerpos de tablas (<tbody>)
    ...    
... ... ... ... ...
    ...    
Pie de tabla (<tfoot>)

A su vez, tanto los cuerpos de tabla como la cabecera y el pie de tabla están formados por varias filas (<tr>) formadas por varias celdas (<td> o <th>). Todas las filas tienen el mismo número de celdas (aunque también se pueden unir celdas horizontal y verticalmente).

Celda Celda ... Celda Celda
 
 
...
 
 
Fila (<tr>)

La leyenda (<caption>) es texto explicativo opcional que se muestra fuera de la tabla (normalmente, arriba). Además la leyenda no puede incluir párrafos ni otros elementos de bloque.

Tanto a cabecera de la tabla (<thead>) como el pie de tabla (<tfoot>) son opcionales y sólo puede haber uno de cada por tabla. En el código fuente, la etiqueta <tfoot> se encuentra situada antes del primer <tbody>, aunque los navegadores la muestran al final de la tabla. Al imprimir una tabla que ocupa varias páginas, Mozilla repite al principio y al final de cada página las cabeceras y pies de tabla. Internet Explorer sólo los imprime al principio y al final de la tabla.

El cuerpo de tabla (<tbody>) es obligatorio y puede haber tantos como se quiera.

Cada celda de la tabla está marcada con la etiqueta <td>, aunque también se pueden marcar con la etiqueta <th>. Se supone que las celdas <th> son las que sirven de cabecera para la fila o columna, por lo que los navegadores las muestran resaltadas (en negrita y centradas en horizontal).

En una tabla también puede haber etiquetas <col /> y <colgroup>, que permiten hacer referencia a columnas de la tabla.

Volver al índice


Define el tamaño de la tabla Crear una tabla

Puede crearse una tabla mediante el menú XHTML > Tabla > Tabla (table) o el botón de creación de tabla Botón Crear tabla. En la caja de diálogo,se puede elegir el número de columnas, el número de filas y el grosor del borde exterior.

Para crear un párrafo después de una tabla, hay que seleccionar la tabla completa F2 y pulsar Intro. También se puede seleccionar la tabla completa F2, elegir el menú XHTML > Editar > Añadir detrás y a continuación escribir el texto.

Para crear un párrafo antes de una tabla, hay que seleccionar la tabla completa F2 y pulsar Intro. También se puede seleccionar la tabla completa F2, elegir el menú XHTML > Editar > Insertar delante y a continuación escribir el texto.

Volver al índice


Leyenda (<caption>)

Al crear un tabla en Amaya, el cursor se sitúa en la leyenda. Si se borra la leyenda, se puede añadir nuevamente mediante el menú XHTML > Tabla > Leyenda (caption).

Los navegadores dan a la leyenda el mismo ancho que a la tabla, por lo que si una leyenda es larga y la tabla estrecha, la leyenda ocupará varias líneas.

Volver al índice


Añadir y borrar encabezados, pies y cuerpos de tabla

Al crear una tabla en Amaya, ésta se crea con un único <tbody> y sin <thead> o <tfoot>.

Para crear el <thead>, hay que elegir la opción de menú XHTML > Tabla > thead. Para crear el <tfoot>, hay que elegir la opción de menú XHTML > Tabla > tfoot.

Para crear un nuevo <tbody> a continuación de otro, se puede seleccionar el <tbody> ya existente con F2 y pulsar Intro. También se puede crerar un nuevo<tbody> con la opción de menú XHTML > Tabla > thead. Si el cursor se encuentra en la celda superior izquierda de la tabla, el nuevo <tbody> se creará antes del <tbody> ya existente; si el cursor se encuentra en cualquier otra celda, el nuevo <tbody> se creará después del <tbody> ya existente.

Para borrar cualquier <thead>, <tbody> o <tfoot>, hay que pulsar F2 hasta seleccionar el elemento que se desea borrar y pulsar Borrar o Suprimir.

Volver al índice


Añadir y borrar filas y columnas

Añadir una fila

Para insertar una nueva fila antes de otra fila, hay que situar el cursor en cualquier posición de la fila y elegir la opción de menú XHTML > Tabla > Insertar fila delante. Para añadir una nueva fila después de otra fila, hay que situar el cursor en cualquier posición de la fila y elegir la opción de menú XHTML > Tabla > Añadir fila detrás. También se puede añadir una nueva fila después de otra fila, seleccionando la fila completa con F2 y pulsando Intro.


Borrar una fila

Para borrar una fila, hay que seleccionar la fila completa con F2 (o mediante el menú XHTML > Tabla > Seleccionar fila) y pulsar Suprimir o Borrar.


Añadir una columna

Para insertar una nueva columna antes de otra columna, hay que situar el cursor en cualquier posición de la columna y elegir la opción de menú XHTML > Tabla > Insertar columna delante. Para añadir una nueva columna después de otra columna, hay que situar el cursor en cualquier posición de la columna y elegir la opción de menú XHTML > Tabla > Añadir columna detrás. También se puede añadir una nueva columna después de otra columna, seleccionando una celda cualquiera de la columna con F2 y pulsando Intro.


Borrar una columna

Para borrar una columna, hay que seleccionar la columna completa y pulsar Suprimir o Borrar. La columna se puede seleccionar seleccionando con el ratón un par de celdas de la misma columnna y pulsando dos veces F2, o bien mediante el menú XHTML > Tabla > Seleccionar columna.


Celdas de datos (<td>) y celdas de cabecera (<th>)

Al crear una tabla en Amaya, todas las celdas están marcadas con la etiqueta <td>. Para convertir una celda de datos <td> en una celda de cabecera <th>, hay que situar el cursor en la celda y elegir la opción de menú XHTML > Tabla > Cambiar a celda de cabecera. Se pueden convertir varias celdas contiguas seleccionándolas con el ratón, pulsando F2 y eligiendo la opción de menú XHTML > Tabla > Cambiar a celda de cabecera. Para convertir una celda de datos <th> en una celda de cabecera <td>, hay que situar el cursor en la celda y elegir la opción de menú XHTML > Tabla > Cambiar a celda de datos. Se pueden convertir varias celdas contiguas seleccionándolas con el ratón, pulsando F2 y eligiendo la opción de menú XHTML > Tabla > Cambiar a celda de datos.

Volver al índice


Unir celdas

Aunque las tablas XHTML sean rectangulares, es decir, tengan el mismo número de celdas en cada fila, se pueden unir varias celdas horizontal o verticalmente mediante los atributos colspan y rowspan, respectivamente.


El menú XHTML > Tabla > Unir con celda derecha permite unir dos celdas contiguas, como se explica en el siguiente ejemplo:

1º. Situar el cursor en la celda izquierda de las dos que se quieren unir.
Esto es una tabla
celda a1 celda b1 celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3
2º Elegir el menú XHTML > Tabla > Unir con celda derecha.

Nota: El contenido de ambas celdas, en su caso, se conserva en la nueva celda (el contenido de cada celda, menos la primera, en un párrafo <p> distinto).

Esto es una tabla
celda a1

celda b1

celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3

Si se selecciona la celda con F2 y se consulta el atributo colspan en la ventana de Atributos, se puede comprobar que el valor es 2. Se pueden unir tantas celdas contiguas como se desee. El valor del atributo colspan indica el número de celdas unidas horizontalmente. En caso de introducir manualmente un valor del atributo colspan superior al máximo posible (es decir, superior al número de celdas situadas a la derecha de la celda elegida), Amaya reduce el valor al máximo posible.


El menú XHTML > Tabla > Unir con celda inferior permite unir dos celdas contiguas, como se explica en el siguiente ejemplo:

1º. Situar el cursor en la celda superior de las dos que se quieren unir.
Esto es una tabla
celda a1 celda b1 celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3
2º Elegir el menú XHTML > Tabla > Unir con celda inferior.

Nota: El contenido de ambas celdas, en su caso, se conserva en la nueva celda. (el contenido de cada celda, menos la primera, en un párrafo <p> distinto)

Esto es una tabla
celda a1

celda a2

celda b1 celda c1
celda b2 celda c2
celda a3 celda b3 celda c3

Si se selecciona la celda con F2 y se consulta el atributo colspan en la ventana de Atributos, e puede comprobar que el valor es 2. Se pueden unir tantas celdas contiguas como se desee. El valor del atributo rowspan indicará el número de celdas unidas verticalmente. En caso de introducir manualmente un valor del atributo rowspan superior al máximo posible (es decir, superior al número de celdas situadas por debajo de la celda elegida), Amaya reduce el valor al máximo posible.


Una celda puede tener establecidos simultáneamente los atributos colspan y rowspan, como se explica en el siguiente ejemplo:

1º. Situar el cursor en la celda izquierda de las dos que se quieren unir.
Esto es una tabla
celda a1 celda b1 celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3
2º Elegir el menú XHTML > Tabla > Unir con celda derecha.

Nota: El contenido de ambas celdas, en su caso, se conserva en la nueva celda. (el contenido de cada celda, menos la primera, en un párrafo <p> distinto)

Esto es una tabla
celda a1

celda b1

celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3
3º. Situar el cursor en la celda superior de las que se quieren unir.
Esto es una tabla
celda a1

celda b1

celda c1
celda a2 celda b2 celda c2
celda a3 celda b3 celda c3
4º Elegir el menú XHTML > Tabla > Unir con celda inferior.

Nota: El contenido de todas las celdas afectadas, en su caso, se conserva en la nueva celda. (el contenido de cada celda, menos la primera, en un párrafo <p> distinto)

Esto es una tabla
celda a1

celda a2

celda b1

celda b2

celda c1
celda c2
celda a3 celda b3 celda c3

Para dividir celdas anteriormente unidas, se puede utilizar los menús XHTML > Tabla > Reducir extensión horizontal y XHTML > Tabla > Reducir extensión vertical, que reducen respectivamente los atributos colspan y rowspan en una unidad. La nueva celda se crea sin contenido. No se pueden dividir celdas que no se hubieran unido anteriormente.


En caso de introducir manualmente valores de los atributos colspan y colspan superiores al máximo posible (es decir, superior al número de celdas situadas a la derecha o por debajo de la celda elegida), Amaya reduce en los valores valor al máximo posible.

Si todas las celdas de una columna tienen el atributo colspan mayor que uno, Amaya reduce todos los valores hasta que alguno sea igual a uno y lo elimina. En particular, si todas las celdas de una columna tienen el mismo valor del atributo colspan, Amaya elimina todos los atributos colspan.

Si todas las celdas de una fila tienen el atributo rowspan mayor que uno, Amaya reduce todos los valores hasta que alguno sea igual a uno y lo elimina. En particular, si todas las celdas de una fila tienen el mismo valor del atributo rowspan, Amaya elimina todos los atributos rowspan.

Volver al índice


Columnas

Aunque las celdas de una tabla estén organizadas en filas y grupos de filas (los cuerpos de tabla), también existen dos etiquetas que permiten hacer referencia a las columnas de una tabla: las etqieutas <col /> y <colgroup>. La etiqueta <col /> permite hacer referencia a una columna y la etiqueta <colgroup> permite definir grupos de columnas (de manera similar a como la etiqueta <tbody> define grupos de filas).

Las etiquetas <col /> y <colgroup> se encuentran situadas al principio de la tabla y en Amaya no se pueden seleccionar con F2, por lo que su edición debe realizarse en la vista de código fuente. Las etiquetas de columnas no se crean automáticamente, sino que el usuario debe añadirlas después de haber creado la tabla, y al crearlas o eliminarlas no se modifica la estructura de la tabla (ni se crean ni se eliminan celdas o filas).

El ejemplo siguiente muestra la situación de las estiquetas <col /> y <colgroup> en una tabla.

1   <table border="1" >
2     <caption>Leyenda</caption>
3     <colgroup><col /><col /></colgroup><colgroup><col /></colgroup>
4     <tbody>
5       <tr>
6         <td>1</td>
7         <td>2</td>
8         <td>3</td>
9       </tr>  
10     </tbody>
11  </table>

Cada etiqueta <col /> corresponde a una columna, en el mismo orden (la primera etiqueta <col /> corresponde a la primera columna, y así sucesivamente). En el ejemplo anterior, hay definidas tres columnas, agrupadas en dos grupos de columnas.

Puede haber menos etiquetas <col /> que columnas en la tabla (también puede haber más, pero serían innecesarias).

Nota: En Amaya 9.2.2, al crear por primera vez una etiqueta <col /> o <colgroup> después de haber abierto o actualizado la página aparece una ventana de aviso que dice "La nueva vista no puede sustituir a la anterior". El 29/11/05 envié un correo notificando este bug y parece que lo van a corregir.

Volver al índice


Columnas (<col />)

Para insertar una etiqueta <col />, hay que situar el cursor en cualquier elemento de la tabla y elegir la opción de menú XHTML > Tabla > Columna (col). Las nuevas etiquetas se crean delante de las anteriores.

Nada más crear la etiqueta, se puede dar valor a los atributos (class, span, etc), pero si después de editar otros elementos se quiere modificar los atributos o incluso eliminar la etiqueta <col />, hay que hacerlo en la vista de código fuente, puesto que no hay forma de seleccionar la etiqueta <col /> en la vista normal.

Amaya permite insertar más etiquetas <col /> de las columnas que tiene la tabla, aunque no tengan ninguna utilidad.

Volver al índice


Grupos de columnas (<colgroup>)

Para insertar una etiqueta <colgroup>, hay que situar el cursor en cualquier elemento de la tabla y elegir la opción de menú XHTML > Tabla > Grupo de columnas (colgroup). Las nuevas etiquetas se crean delante de las anteriores.

Nada más crear la etiqueta, se puede dar valor a los atributos (class, span, etc), pero si después de editar otros elementos se quiere modificar los atributos o incluso eliminar la etiqueta <colgroup>, hay que hacerlo en la vista de código fuente, puesto que no hay forma de seleccionar la etiqueta <colgroup> en la vista normal.

Cada grupo de columnas puede contener tantas etiquetas <col /> como se quiera.

Si hay un <colgroup>, todos los <col /> deben estar dentro de algún <colgroup>. Por eso en Amaya, si hay un <colgroup>, al crear un <col /> se crea dentro del primer <colgroup>.

Amaya permite insertar <colgroups> con más <col /> de las columnas que tiene la tabla, aunque no tengan ninguna utilidad.

Volver al índice

Autor: Bartolomé Sintes Marco
Última modificación: 1 de diciembre de 2005