Sí, puede usarlos, por ejemplo, los uso para diseñar más fácilmente grupos de datos, como este:
thead th { width: 100px; border-bottom: solid 1px #ddd; font-weight: bold; }
tbody:nth-child(odd) { background: #f5f5f5; border: solid 1px #ddd; }
tbody:nth-child(even) { background: #e5e5e5; border: solid 1px #ddd; }
<table>
<thead>
<tr><th>Customer</th><th>Order</th><th>Month</th></tr>
</thead>
<tbody>
<tr><td>Customer 1</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 1</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 1</td><td>#3</td><td>March</td></tr>
</tbody>
<tbody>
<tr><td>Customer 2</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 2</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 2</td><td>#3</td><td>March</td></tr>
</tbody>
<tbody>
<tr><td>Customer 3</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 3</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 3</td><td>#3</td><td>March</td></tr>
</tbody>
</table>
Puedes ver un ejemplo aquí . Solo funcionará en navegadores más nuevos, pero eso es lo que estoy admitiendo en mi aplicación actual, puede usar la agrupación para JavaScript, etc. Lo principal es que es una forma conveniente de agrupar visualmente las filas para que los datos sean mucho más legibles . Hay otros usos, por supuesto, pero en cuanto a los ejemplos aplicables, este es el más común para mí.
tbodyo múltiples?<tbody>. Cuando comienzas a anidar tablas, eso es lo que generalmente da problemas de navegación reales para un lector de pantalla.<tbody>elementos describen grupos separados en la tabla, como se explicó en la respuesta. También debo añadir que es generalmente mejor a las células diana para los fondos, por lo que la CSS debe ser, por ejemplo,tbody:nth-child(odd) td { background: #f5f5f5; }:nth-child()uso de CSS para la demostración vinculada, los múltiples<tbody>funcionarán en cualquier navegador.Si. De la DTD
Entonces espera uno o más. Luego continúa diciendo
fuente
tbodyelementos están bien" sigue siendo fundamental . Específicamente, ahora se le permite colocar eltfootelemento después deltbodysi lo desea (desviaron cuidadosamente el aspecto DTD). diciendo que no proporcionan uno .) :-)<tr>por lo que también podría ser cero (es decir, un cuerpo o un tr significa que podría ser un tr y ningún cuerpo).De acuerdo con este ejemplo se puede hacer: w3-struct-tables .
fuente
El problema de Martin Joiner es causado por un malentendido de la
<caption>etiqueta.La
<caption>etiqueta define un título de tabla.La
<caption>etiqueta debe ser el primer hijo de la<table>etiqueta.Puede especificar solo un título por tabla.
Además, tenga en cuenta que el
scopeatributo debe colocarse en un<th>elemento y no en un<tr>elemento.La forma correcta de escribir una tabla multi-encabezado multi-tbody sería algo como esto:
fuente
captionetiqueta debe seguir a latableetiqueta de apertura . developer.mozilla.org/en-US/docs/Web/HTML/Element/tablescope="rowgroup"(en lugar decol) para lostbodyencabezados. Ver ejemplo .Si. Los uso para ocultar / revelar dinámicamente la parte relevante de una tabla, por ejemplo, un curso. Verbigracia.
Se puede proporcionar un botón para alternar entre todo o solo el día actual manipulando los cuerpos sin procesar muchas filas individualmente.
fuente
EDITAR: la
captionetiqueta pertenece a la tabla y, por lo tanto, solo debe existir una vez. No asocie uncaptiona cadatbodyelemento como lo hice yo:MALO EJEMPLO ANTERIOR: NO COPIE
El ejemplo anterior no se procesa como cabría esperar porque escribir así indica un malentendido de la
captionetiqueta. Necesitaría muchos hacks CSS para que se renderice correctamente porque iría en contra de los estándares.Busqué los estándares W3Cs en la
captionetiqueta, pero no pude encontrar una regla explícita que indique que debe haber solo uncaptionelemento por tabla, pero ese es el caso.fuente
Además, si ejecuta un documento HTML con varias
<tbody>etiquetas a través del Validador HTML del W3C , con un DOCTYPE HTML5, se validará con éxito.fuente
He creado un JSFiddle donde tengo dos ng-repite anidadas con tablas, y el padre ng-repeat en tbody. Si inspecciona cualquier fila de la tabla, verá que hay seis elementos tbody, es decir, el nivel principal.
HTML
(Nota al margen: esto llena el DOM si tiene una gran cantidad de datos en ambos niveles, por lo tanto, estoy trabajando en una directiva para recuperar datos y reemplazarlos, es decir, agregarlos al DOM cuando se hace clic en padre y eliminar cuando se hace clic en otro o en el mismo padre de nuevo. Para obtener el tipo de comportamiento que encuentra en Prisjakt.nu , si se desplaza hacia abajo a las computadoras enumeradas y hace clic en la fila (no en los enlaces). Si lo hace e inspecciona los elementos, verá que se agrega un tr y luego se elimina si se hace clic en padre nuevamente u otro.)
fuente