mitmario.dev

<tbody>

Das <tbody>-Element (Table Body) gruppiert die Datenzeilen einer Tabelle und trennt sie vom Kopfbereich (<thead>) und Fußbereich (<tfoot>). Auch wenn du <tbody> nicht explizit schreibst, fügt der Browser es automatisch ein: Jede <tr>, die nicht in <thead> oder <tfoot> steht, landet in einem impliziten <tbody>. Trotzdem solltest du es immer explizit schreiben, weil es die Tabellenstruktur klarer macht, gezieltes CSS-Styling ermöglicht und die Barrierefreiheit verbessert.

Steckbrief <tbody>
Kategorie
Tabellen
Art
Block
Beispiele
3
Browser
5 von 5
E-Mail
5 von 5
Stand
04.02.2026

Grundlagen

<tbody> ist der Hauptbereich einer Tabelle und enthält die eigentlichen Dateninhalte. Zusammen mit <thead> und <tfoot> bildet es die drei semantischen Bereiche einer Tabelle. Eine Besonderheit: Du kannst mehrere <tbody> in einer Tabelle verwenden, um Datenzeilen in logische Gruppen aufzuteilen.

  • <tbody> steht nach <thead> und vor <tfoot> innerhalb von <table>
  • Es enthält <tr>-Zeilen mit <td>-Datenzellen (und optional <th> für Zeilenüberschriften)
  • Mehrere <tbody> pro Tabelle sind erlaubt und nützlich für thematische Gruppierung
  • Der Browser ergänzt ein implizites <tbody>, wenn du keines schreibst
  • CSS-Selektoren wie tbody tr:nth-child() zählen Zeilen nur innerhalb des jeweiligen <tbody>
  • Bei scrollbaren Tabellen kann <tbody> per CSS unabhängig vom Kopf gescrollt werden

Syntax

index.html
Grundsyntax
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Stadt</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Anna</td>
      <td>Berlin</td>
    </tr>
    <tr>
      <td>Ben</td>
      <td>München</td>
    </tr>
  </tbody>
</table>

Beispiele

3 Beispiele

Auch bei einer einfachen Tabelle lohnt es sich, <tbody> explizit zu schreiben. Du kannst den Datenbereich dann gezielt stylen, zum Beispiel mit einer anderen Hintergrundfarbe als den Kopfbereich.

index.html
Tabelle mit explizitem tbody
<table>
  <thead>
    <tr>
      <th scope="col">Sprache</th>
      <th scope="col">Paradigma</th>
      <th scope="col">Typisierung</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>JavaScript</td>
      <td>Multi-Paradigma</td>
      <td>Dynamisch</td>
    </tr>
    <tr>
      <td>TypeScript</td>
      <td>Multi-Paradigma</td>
      <td>Statisch</td>
    </tr>
    <tr>
      <td>Go</td>
      <td>Imperativ</td>
      <td>Statisch</td>
    </tr>
  </tbody>
</table>

Barrierefreiheit

Screenreader nutzen <tbody>, um den Datenbereich einer Tabelle vom Kopf- und Fußbereich zu unterscheiden. Nutzer können gezielt zum Datenbereich springen, ohne die Überschriften erneut durchgehen zu müssen. Das spart bei großen Tabellen erheblich Zeit.

Bei mehreren <tbody>-Elementen erkennen Screenreader die Gruppierungen und können diese als separate Bereiche ankündigen. In Kombination mit <th scope="rowgroup"> wird die thematische Zuordnung noch deutlicher.

Auch wenn der Browser ein implizites <tbody> ergänzt, ist die explizite Verwendung für assistive Technologien vorteilhafter, da sie eine klarere DOM-Struktur vorgibt.

Häufige Fehler

3 Fehler
01 <tr> direkt in <table> ohne <tbody>
Auch wenn der Browser das toleriert und ein implizites <tbody> in den DOM einfügt, solltest du <tbody> immer explizit schreiben. Es macht deinen Code lesbarer und verbessert die Zusammenarbeit mit <thead> und <tfoot>.
02 <thead> oder <tfoot> in <tbody>
Die drei Bereiche sind Geschwister-Elemente auf derselben Ebene innerhalb von <table>. Ein <thead> innerhalb von <tbody> ist ungültiges HTML. Die korrekte Reihenfolge ist: <thead> → <tbody> → <tfoot>.
03 nth-child zählt nur innerhalb des jeweiligen <tbody>
Wenn du mehrere <tbody>-Elemente verwendest, startet die Zählung von tr:nth-child() in jedem <tbody> von vorne. Das kann zu unerwartetem Zebra-Striping führen, wenn du nicht damit rechnest. Nutze dieses Verhalten gezielt für gruppenweise Formatierung.

Browser-Kompatibilität

5 von 5

Das tbody-Element wird von allen modernen und älteren Browsern vollständig unterstützt. Auch das implizite Einfügen durch den Browser und die Verwendung mehrerer tbody-Elemente funktionieren überall zuverlässig.

  • Chrome

    Komplett

  • Firefox

    Komplett

  • Safari

    Komplett

  • Edge

    Komplett

  • Opera

    Komplett

Email-Kompatibilität

5 von 5

Tabellen sind das Rückgrat von HTML-E-Mails, und tbody wird von allen großen Email-Clients vollständig unterstützt. Da E-Mail-Layouts fast ausschließlich auf Tabellen basieren, ist die Unterstützung besonders gut.

  • Apple Mail

    Komplett

  • Gmail

    Komplett

  • Outlook

    Komplett

    Tabellen sind die bevorzugte Layout-Methode in Outlook. tbody wird korrekt gerendert.

  • Thunderbird

    Komplett

  • Yahoo Mail

    Komplett

Newsletter

einmal die Woche, kostenlos

Neue Artikel und Videos, was sich auf der Lernplattform tut, und ab und zu ein Sonderpreis zum Kursstart. Kurz genug, dass du es auch liest.

Zuletzt verschickt · KW 40

Einmal alles neu, und die Lernplattform ist da

Danach kommt eine Mail mit Bestätigungslink, erst dann bist du eingetragen. Abmelden geht unten in jeder Ausgabe. Mehr dazu in der Datenschutzerklärung.