Buscar..
Introducción
El elemento HTML <table> permite a los autores web mostrar datos tabulares (como texto, imágenes, enlaces, otras tablas, etc.) en una tabla bidimensional con filas y columnas de celdas.
Sintaxis
-
<table></table> -
<thead></thead> -
<tbody></tbody> -
<tfoot></tfoot> -
<tr></tr> -
<th></th> -
<td></td>
Observaciones
Los diversos elementos de la tabla y sus atributos de contenido juntos definen el modelo de tabla. El elemento <table> es el elemento contenedor para los modelos de tabla / datos tabulares. Las tablas tienen filas, columnas y celdas dadas por sus descendientes. Las filas y columnas forman una cuadrícula; las celdas de una tabla deben cubrir completamente la cuadrícula sin superponerse. La siguiente lista describe los diversos elementos en el modelo de tabla:
-
<table>- El elemento contenedor para modelos de tablas / datos tabulares.<table>representa datos con más de una dimensión en forma de tabla. -
<caption>- Título o título de la tabla (como unafigcaptiona unafigure) -
<col>- Una columna (un elemento sin contenido) -
<colgroup>- una agrupación de columnas -
<thead>- encabezado de tabla (solo uno) -
<tbody>- Cuerpo / contenido de la tabla (múltiples están bien) -
<tfoot>- pie de tabla (solo uno) -
<tr>- fila de la tabla -
<th>- Celda de encabezado de tabla -
<td>- Celda de datos de tabla
Semánticamente, las tablas están destinadas a contener datos tabulares. Puede pensarlo como una forma de mostrar y describir datos que tendrían sentido en una hoja de cálculo (columnas y filas).
No se recomienda el uso de tablas para el diseño. En su lugar, use las reglas de CSS para el diseño y el formato, incluida la display: table
Una excepción notable que generalmente se muestra en la industria con respecto al uso del diseño de <table> es el correo electrónico HTML: algunos clientes de correo electrónico, incluido Outlook, regresan a los motores de renderización más antiguos después de que Microsoft pierde su caso de monopolio frente a la UE. Para que Microsoft haga que IE no sea parte del sistema operativo, simplemente hicieron retroceder el motor de renderizado de Outlook a una versión anterior de Trident. Esta reversión simplemente no es compatible con las tecnologías web modernas, por lo que el uso de diseños basados en <table> para correo electrónico HTML es la única manera de garantizar la compatibilidad entre navegadores / plataforma / cliente.
Mesa simple
<table>
<tr>
<th>Heading 1/Column 1</th>
<th>Heading 2/Column 2</th>
</tr>
<tr>
<td>Row 1 Data Column 1</td>
<td>Row 1 Data Column 2</td>
</tr>
<tr>
<td>Row 2 Data Column 1</td>
<td>Row 2 Data Column 2</td>
</tr>
</table>
Esto generará una <table> consta de tres filas totales ( <tr> ): una fila de celdas de encabezado ( <th> ) y dos filas de celdas de contenido ( <td> ). <th> elementos <th> son encabezados tabulares y los elementos <td> son datos tabulares . Puedes poner lo que quieras dentro de <td> o <th> .
| Título 1 / Columna 1 | Título 2 / Columna 2 |
|---|---|
| Fila 1 Columna de datos 1 | Fila 1 Columna de datos 2 |
| Fila 2 Columna de datos 1 | Fila 2 Columna de datos 2 |
Abarcando columnas o filas
Las celdas de la tabla pueden abarcar varias columnas o filas usando los atributos colspan y rowspan . Estos atributos se pueden aplicar a los elementos <th> y <td> .
<table>
<tr>
<td>row 1 col 1</td>
<td>row 1 col 2</td>
<td>row 1 col 3</td>
</tr>
<tr>
<td colspan="3">This second row spans all three columns</td>
</tr>
<tr>
<td rowspan="2">This cell spans two rows</td>
<td>row 3 col 2</td>
<td>row 3 col 3</td>
</tr>
<tr>
<td>row 4 col 2</td>
<td>row 4 col 3</td>
</tr>
</table>
Tenga en cuenta que no debe diseñar una tabla en la que tanto las filas como las columnas se superpongan, ya que este no es un código HTML válido y el resultado se maneja de manera diferente por diferentes navegadores web.
rowspan = Un entero no negativo que especifica el número de filas que ocupa una celda. El valor predeterminado de este atributo es uno ( 1 ). Un valor de cero ( 0 ) significa que la celda se extenderá desde la fila actual hasta la última fila de la tabla ( <thead> , <tbody> o <tfoot> ).
colspan = Un entero no negativo que especifica el número de columnas abarcadas por la celda actual. El valor predeterminado de este atributo es uno ( 1 ). Un valor de cero ( 0 ) significa que la celda se extenderá desde la corriente hasta la última columna del grupo de columnas <colgroup> en el que se define la celda.
Tabla con thead, tbody, tfoot y subtítulo
HTML también proporciona las tablas con los elementos <thead> , <tbody> , <tfoot> y <caption> . Estos elementos adicionales son útiles para agregar valor semántico a sus tablas y para proporcionar un lugar para el estilo CSS separado.
Al imprimir una tabla que no cabe en una página (papel), la mayoría de los navegadores repiten el contenido de <thead> en cada página.
Hay un orden específico que debe cumplirse, y debemos ser conscientes de que no todos los elementos encajan en su lugar como uno esperaría. El siguiente ejemplo muestra cómo se deben colocar nuestros 4 elementos.
<table>
<caption>Table Title</caption> <!--| caption is the first child of table |-->
<thead> <!--======================| thead is after caption |-->
<tr>
<th>Header content 1</th>
<th>Header content 2</th>
</tr>
</thead>
<tbody> <!--======================| tbody is after thead |-->
<tr>
<td>Body content 1</td>
<td>Body content 2</td>
</tr>
</tbody>
<tfoot><!--| tfoot can be placed before or after tbody, but not in a group of tbody. |--> <!--| Regardless where tfoot is in markup, it's rendered at the bottom. |-->
<tr>
<td>Footer content 1</td>
<td>Footer content 2</td>
</tr>
</tfoot>
</table>
Los resultados del siguiente ejemplo se muestran dos veces: la primera tabla carece de estilos, la segunda tabla tiene algunas propiedades CSS aplicadas: background-color , color y border *. Los estilos se proporcionan como una guía visual y no son un aspecto esencial del tema en cuestión.
| Elemento | Estilos Aplica |
|---|---|
<caption> | Texto amarillo sobre fondo negro. |
<thead> | Texto en negrita en el fondo púrpura. |
<tbody> | Texto sobre fondo azul. |
<tfoot> | Texto sobre fondo verde. |
<th> | Bordes naranjas. |
<td> | Bordes rojos. |
Grupos de columnas
A veces es posible que desee aplicar un estilo a una columna o grupo de columnas. O para fines semánticos, puede agrupar columnas. Para hacer esto, use los elementos <colgroup> y <col> .
La etiqueta opcional <colgroup> permite agrupar columnas. <colgroup> elementos <colgroup> deben ser elementos secundarios de una <table> y deben ir después de cualquier elemento <caption> y antes del contenido de la tabla (por ejemplo, <tr> , <thead> , <tbody> , etc.).
<table>
<colgroup span="2"></colgroup>
<colgroup span="2"></colgroup>
...
</table>
La etiqueta opcional <col> permite hacer referencia a columnas individuales o un rango de columnas sin aplicar una agrupación lógica. <col> elementos <col> son opcionales, pero si están presentes, deben estar dentro de un elemento <colgroup> .
<table>
<colgroup>
<col id="MySpecialColumn" />
<col />
</colgroup>
<colgroup>
<col class="CoolColumn" />
<col class="NeatColumn" span="2" />
</colgroup>
...
</table>
Los siguientes estilos CSS se pueden aplicar a los elementos <colgroup> y <col> :
borderbackgroundwidthvisibilitydisplay(como en ladisplay: none)-
display: none;realmente eliminará las columnas de la pantalla, lo que hará que la tabla se muestre como si esas celdas no existieran
-
Para más información, vea HTML5 Tabular data .
Ámbito de aplicación
th elementos se usan con mucha frecuencia para indicar encabezados de filas y columnas de tablas, de esta manera:
<table>
<thead>
<tr>
<td></td>
<th>Column Heading 1</th>
<th>Column Heading 2</th>
</tr>
</thead>
<tbody>
<tr>
<th>Row Heading 1</th>
<td></td>
<td></td>
</tr>
<tr>
<th>Row Heading 2</th>
<td></td>
<td></td>
</tr>
</tbody>
</table>
Esto se puede mejorar para accesibilidad mediante el uso del atributo de scope . El ejemplo anterior se enmendaría como sigue:
<table>
<thead>
<tr>
<td></td>
<th scope="col">Column Heading 1</th>
<th scope="col">Column Heading 2</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Row Heading 1</th>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">Row Heading 1</th>
<td></td>
<td></td>
</tr>
</tbody>
</table>
scope se conoce como un atributo enumerado , lo que significa que puede tener un valor de un conjunto específico de valores posibles. Este set incluye:
-
col -
row -
colgroup -
rowgroup
Referencias:
- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope
- https://www.w3.org/TR/WCAG20-TECHS/H63.html


