Pregunta

Hace una fila de tabla (<tr>) tienen que estar en un cuerpo de mesa (<tbody>), si la mesa tiene un cuerpo de mesa, ¿o puede existir fuera del cuerpo de la mesa?

<table>
    <tr>
      <td colspan='2'>...</td>
    </tr>

    <tbody>
      <tr>
        <td>...</td>
        <td>...</td>
      </tr>
    </tbody>

    <tr>
      <td colspan='2'>...</td>
    </tr>

    <tbody>
      <tr>
        <td>...</td>
        <td>...</td>
      </tr>
    </tbody>

</table>
¿Fue útil?

Solución

No, el <tr> puede estar en el <thead>, <tbody>, <tfoot> O no tiene que estar en ninguno de ellos.

Otros consejos

Contrariamente a lo que dijo Terrill Thomson, una mesa con <tr> Etiquetas fuera del <thead>, <tfoot> y <tbody> etiquetas pero dentro del <table> Las etiquetas serán validadas contra el Servicio de validación de marcado W3C.

Este documento se verificó con éxito como HTML 4.01 Transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
  <head>
  </head>
  <body>
    <table>
      <thead>
        <th colspan="2">head1</th>
        <th>head2</th>
      </thead>
      <tfoot>
        <th colspan="2">foot1</th>
        <th>foot2</th>
      </tfoot>

      <tr><td colspan="3">this row is outside of thead and tfoot</td></tr>

      <tbody>
        <tr>
          <td>1-1</td>
          <td>1-2</td>
          <td>1-3</td>
        </tr>
        <tr>
          <td>2-1</td>
          <td>2-2</td>
          <td>3-3</td>
        </tr>
        <tr>
          <td>3-1</td>
          <td>3-2</td>
          <td>3-3</td>
        </tr>
      </tbody>
  </body>
</html>

<tbody> se usa para marcar el cuerpo de su <table>, si su mesa contiene <thead> (encabezado de mesa) o <tfoot> (pie de página) elementos. Si su mesa no contiene esos elementos, es libre de no usar <tbody>.

El uso correcto sería:

<table>
<thead><tr><th>Item          </th><th>Cost </th></tr></thead>
<tbody><tr><td>Stack Overflow</td><td>Free </td></tr>
       <tr><td>Something cool</td><td>$1.00</td></tr></tbody>
</table>

Especificación HTML4 a tablas

Si tienes un <tr> fuera de un <tbody>, la página no validará:http://validator.w3.org

Como otros han notado, <tbody> es opcional a menos que estés usando <thead> o <tfoot>. La razón principal para usar los dos últimos elementos es para que el encabezado y el pie de página se repitan en cada página si se imprime una tabla larga.

Parece que podrías estar creando algo como un calendario, donde quieres tener hileras alternativas de <th> (por ejemplo, para fechas) y <td> (por ejemplo, para eventos en esa fecha). Si ese es el caso, no debes envolver las filas alternativas en <thead> y <tbody> - Hacerlo confundiría los navegadores cuando se trataba de imprimir la página. Si simplemente deja los elementos de agrupación, su mesa validará. Sin embargo, algunos lectores de pantalla podrían confundirse con ese marcado y aplicar la fila más superior de encabezados a todas las celdas debajo de ellos. Para una tabla compleja como esta, deberá agregar un marcado adicional para asegurar que los lectores de pantalla comprendan cómo se organiza la tabla. Aquí está su mesa con un marcado accesible:

<table summary="A brief description of how the table is organized, for screen reader users">
  <tr>
    <th colspan='2' id="header1">...</th>
  </tr>
  <tr>
    <td headers="header1">...</td>
    <td headers="header1">...</td>
  </tr>
  <tr>
    <th colspan='2' id="header2">...</th>
  </tr>
  <tr>
    <td headers="header2">...</td>
    <td headers="header2">...</td>
  </tr>
</table> 

Alternativamente, es posible que desee considerar si los datos se pueden organizar en múltiples tablas, o si se puede proporcionar una versión alternativa, sería más fácil de usar para los usuarios de lectores de pantalla. Por ejemplo, un calendario de eventos también podría presentarse como una lista de eventos.

u003Ctbody>es opcional, por lo que la respuesta es 'síu003Ctr> puede estar afuera " - ver http://www.w3.org/tr/html4/struct/tables.html#h-11.2.3 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top