<th>: Das Tabellenkopf-Element

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Das <th>-HTML-Element definiert eine Zelle als Kopf einer Gruppe von Tabellenzellen und kann als Kind des <tr>-Elements verwendet werden. Die genaue Natur dieser Gruppe wird durch die Attribute scope und headers definiert.

Probieren Sie es aus

Attribute

Dieses Element enthält die globalen Attribute.

abbr

Eine kurze, abgekürzte Beschreibung des Inhalts der Kopfzelle, die als alternative Beschriftung für die Kopfzelle in anderen Kontexten verwendet wird. Einige Benutzeragenten, wie z.B. Bildschirmlesegeräte, können diese Beschreibung vor dem eigentlichen Inhalt präsentieren.

colspan

Ein nicht-negativer ganzzahliger Wert, der angibt, wie viele Spalten die Kopfzelle überspannt oder erweitert. Der Standardwert ist 1. Benutzeragenten ignorieren Werte höher als 1000 als falsch und setzen solche Werte auf 1.

headers

Eine Liste von Zeichenfolgen, die durch Leerzeichen getrennt sind und den id-Attributen der <th>-Elemente entsprechen, die die Überschriften für diese Kopfzelle bereitstellen.

rowspan

Ein nicht-negativer ganzzahliger Wert, der angibt, wie viele Zeilen die Kopfzelle überspannt oder erweitert. Der Standardwert ist 1; wenn sein Wert auf 0 gesetzt ist, erstreckt sich die Kopfzelle bis zum Ende des Tabellen-Gruppierungsabschnitts (<thead>, <tbody>, <tfoot>, auch wenn implizit definiert), zu dem das <th>-Element gehört. Werte höher als 65534 werden auf 65534 gekürzt.

scope

Definiert die Zellen, auf die sich die Kopfzelle (definiert im <th>-Element) bezieht. Mögliche enumerierte Werte sind:

  • row: die Kopfzelle bezieht sich auf alle Zellen der Zeile, zu der sie gehört;
  • col: die Kopfzelle bezieht sich auf alle Zellen der Spalte, zu der sie gehört;
  • rowgroup: die Kopfzelle gehört zu einer Zeilengruppe und bezieht sich auf alle deren Zellen;
  • colgroup: die Kopfzelle gehört zu einer Spaltengruppe und bezieht sich auf alle deren Zellen.

Wenn das scope-Attribut nicht spezifiziert ist oder sein Wert nicht row, col, rowgroup oder colgroup ist, wählen Browser automatisch die Zellen aus, auf die sich das Kopfzelle bezieht.

Veraltete Attribute

Die folgenden Attribute sind veraltet und sollten nicht mehr verwendet werden. Sie werden nur dokumentiert, um vorhandenen Code beim Aktualisieren und aus historischem Interesse zu berücksichtigen.

align Veraltet

Gibt die horizontale Ausrichtung der Kopfzelle an. Die möglichen enumerierten Werte sind left, center, right, justify und char. Wenn unterstützt, richtet der Wert char den Textinhalt an dem im char-Attribut definierten Zeichen und dem im charoff-Attribut definierten Versatz aus. Verwenden Sie stattdessen die text-align-CSS-Eigenschaft, da dieses Attribut veraltet ist.

axis Veraltet

Enthält eine Liste von Zeichenfolgen, die durch Leerzeichen getrennt sind und jeweils dem id-Attribut einer Gruppe von Zellen entsprechen, auf die sich die Kopfzelle bezieht. Verwenden Sie stattdessen das scope-Attribut, da dieses Attribut veraltet ist.

bgcolor Veraltet

Definiert die Hintergrundfarbe der Kopfzelle. Der Wert ist eine HTML-Farbe; entweder ein 6-stelliger hexadezimaler RGB-Code, vorangestellt durch ein #, oder ein Farbname. Andere CSS-<color>-Werte werden nicht unterstützt. Verwenden Sie stattdessen die background-color-CSS-Eigenschaft, da dieses Attribut veraltet ist.

char Veraltet

Hat keine Wirkung. Es war ursprünglich gedacht, um die Ausrichtung des Inhalts auf ein Zeichen der Kopfzelle zu spezifizieren. Typische Werte hierfür umfassen einen Punkt (.), wenn versucht wird, Zahlen oder Geldwerte auszurichten. Wenn align nicht auf char gesetzt ist, wird dieses Attribut ignoriert.

charoff Veraltet

Hat keine Wirkung. Es war ursprünglich gedacht, um die Anzahl der Zeichen anzugeben, die der Inhalt der Kopfzelle vom Ausrichtungszeichen verschoben ist, das durch das char-Attribut spezifiziert ist.

height Veraltet

Definiert eine empfohlene Höhe für die Kopfzelle. Verwenden Sie stattdessen die height-CSS-Eigenschaft, da dieses Attribut veraltet ist.

valign Veraltet

Gibt die vertikale Ausrichtung der Kopfzelle an. Die möglichen enumerierten Werte sind baseline, bottom, middle und top. Verwenden Sie stattdessen die vertical-align-CSS-Eigenschaft, da dieses Attribut veraltet ist.

width Veraltet

Definiert eine empfohlene Breite für die Kopfzelle. Verwenden Sie stattdessen die width-CSS-Eigenschaft, da dieses Attribut veraltet ist.

Nutzungshinweise

  • Das <th>-Element darf nur innerhalb eines <tr>-Elements verwendet werden.

  • In einfachen Kontexten ist die Verwendung des scope-Attributs bei Kopfzellen (<th>-Elemente) überflüssig, da scope abgeleitet wird. Einige unterstützende Technologien können jedoch keine korrekten Rückschlüsse ziehen, daher kann das explizite Festlegen des Kopfbereichs die Benutzererfahrung verbessern.

  • Beim Verwenden der Attribute colspan und rowspan, um Kopfzellen über mehrere Spalten und Zeilen zu erstrecken, werden Zellen ohne definierte Attribute (mit einem Standardwert von 1) automatisch in freie verfügbare Räume der Tabellenstruktur eingefügt, die 1x1-Zellen umfassen, wie im folgenden Bild dargestellt:

    Illustration, die das Übergreifen von Spalten und Zeilen von Tabellenzellen zeigt: Zellen 1, 3 und 4 erstrecken sich über zwei Zeilen; Zelle 2 erstreckt sich über zwei Spalten; Zellen 5 und 6 passen in die verfügbaren Zellen, die sich in der zweiten und dritten Spalte der zweiten Zeile befinden

    Hinweis: Diese Attribute dürfen nicht verwendet werden, um Zellen zu überlappen.

Beispiele

Siehe <table> für ein vollständiges Tabellenbeispiel mit Einführung in allgemeine Standards und bewährte Praktiken.

Grundlegende Spalten- und Zeilenüberschriften

Dieses Beispiel verwendet <th>-Elemente, um Spalten- und Zeilenüberschriften in einer grundlegenden Tabellenstruktur einzuführen.

HTML

Die erste Zeile (<tr>-Element) enthält die Spaltenüberschriften (<th>-Elemente), die als "Titel" für die Spalten dienen, um das Verstehen der Informationen in den Spalten zu erleichtern und die Daten zu identifizieren. Um anzugeben, dass sich jede Spaltenüberschrift auf alle Zellen in der entsprechenden Spalte bezieht, wird das scope-Attribut auf col (Spalte) gesetzt.

Die verbleibenden Zeilen enthalten die Hauptdaten der Tabelle. Jede dieser Zeilen hat eine Zeilenüberschrift (<th>-Element) eingeführt als die erste Zelle. Dadurch entsteht eine Spalte mit Zeilenüberschriften als erste Spalte der Tabelle. Ähnlich wie bei den Spaltenüberschriften wird das scope-Attribut auf row gesetzt, um anzugeben, auf welche Zellen sich jede Zeilenüberschrift bezieht, die im folgenden Beispiel alle Datenzellen (<td>-Elemente) in jeder row sind.

Hinweis: Normalerweise werden die Gruppierungselemente <thead> und <tbody> verwendet, um Zeilen mit Überschriften in die jeweiligen Tabellenkopf- und Körpersektionen zu gruppieren. Diese Elemente sind in diesem Beispiel weggelassen, um die Komplexität zu reduzieren und den Fokus auf die Nutzung von Kopfzellen zu legen.

html
<table>
  <tr>
    <th scope="col">Symbol</th>
    <th scope="col">Code word</th>
    <th scope="col">Pronunciation</th>
  </tr>
  <tr>
    <th scope="row">A</th>
    <td>Alfa</td>
    <td>AL fah</td>
  </tr>
  <tr>
    <th scope="row">B</th>
    <td>Bravo</td>
    <td>BRAH voh</td>
  </tr>
  <tr>
    <th scope="row">C</th>
    <td>Charlie</td>
    <td>CHAR lee</td>
  </tr>
  <tr>
    <th scope="row">D</th>
    <td>Delta</td>
    <td>DELL tah</td>
  </tr>
</table>

CSS

Einige grundlegende CSS-Stile werden verwendet, um die Tabelle und ihre Zellen zu gestalten. Wir verwenden CSS-Attributselektoren, um Kopfzellen basierend auf ihren scope-Attributwerten zu selektieren, Spalten- und Zeilenüberschriften (<th>-Elemente) hervorzuheben und sie voneinander und von den Datenzellen (<td>) zu unterscheiden.

css
th,
td {
  border: 1px solid rgb(160 160 160);
  padding: 8px 10px;
}

th[scope="col"] {
  background-color: #505050;
  color: #fff;
}

th[scope="row"] {
  background-color: #d6ecd4;
}

tr:nth-of-type(odd) td {
  background-color: #eee;
}

Ergebnis

Spalten- und Zeilenüberspannung

Dieses Beispiel erweitert und verbessert die einfache Tabelle des vorherigen Beispiels, indem eine zweite Zeile für zusätzliche Spaltenüberschriften hinzugefügt wird.

HTML

Eine zusätzliche Tabellenzeile (<tr>-Element) wird als zweite Kopfzeile der Tabelle mit zwei zusätzlichen Spaltenüberschriften (<th>-Elemente) hinzugefügt. Auf diese Weise wird die "Aussprache"-Spalte in zwei Spalten aufgeteilt, eine für die IPA (International Phonetic Alphabet) Notation und eine für die Neuschreibung (die ursprüngliche Aussprache-Spalte). Die entsprechenden Datenzellen (<td>-Elemente) werden zu jeder nachfolgenden Zeile hinzugefügt.

Wie in den Nutzungshinweisen gezeigt, können die Attribute colspan und rowspan für die <th>-Elemente verwendet werden, um die Kopfzellen den korrekten Spalten und Zeilen zuzuordnen. Um eine "Zwei-Zeilen"-Kopfzeile in der Tabellenstruktur zu erreichen, werden die ersten zwei Kopfzellen innerhalb des ersten <tr>-Elements über zwei Zeilen erstreckt. Die dritte Kopfzelle wird über zwei Spalten breit gemacht (verbleibend in der ersten Zeile). Dieses Setup lässt zwei verfügbare Bereiche in den dritten und vierten Spalten in der zweiten Zeile, in denen die beiden Kopfzellen innerhalb des zweiten <tr>-Elements automatisch platziert werden, wobei der Standardwert 1 für die Attribute colspan und rowspan ist.

Hinweis: Normalerweise werden die <thead>- und <tbody>-Elemente verwendet, um Zeilen mit Überschriften in die jeweiligen Tabellenkopf- und Körpersektionen zu gruppieren. Dies ist in diesem Beispiel nicht implementiert, um sich auf die Überschriften und die Überspannung zu konzentrieren und die Komplexität des Beispiels zu reduzieren.

html
<table>
  <tr>
    <th scope="col" rowspan="2">Symbol</th>
    <th scope="col" rowspan="2">Code word</th>
    <th scope="col" colspan="2">Pronunciation</th>
  </tr>
  <tr>
    <th scope="col">IPA</th>
    <th scope="col">Respelling</th>
  </tr>
  <tr>
    <th scope="row">A</th>
    <td>Alfa</td>
    <td>ˈælfa</td>
    <td>AL fah</td>
  </tr>
  <tr>
    <th scope="row">B</th>
    <td>Bravo</td>
    <td>ˈbraːˈvo</td>
    <td>BRAH voh</td>
  </tr>
  <tr>
    <th scope="row">C</th>
    <td>Charlie</td>
    <td>ˈtʃɑːli</td>
    <td>CHAR lee</td>
  </tr>
  <tr>
    <th scope="row">D</th>
    <td>Delta</td>
    <td>ˈdeltɑ</td>
    <td>DELL tah</td>
  </tr>
</table>

CSS

Das CSS bleibt unverändert gegenüber dem vorherigen Beispiel.

Ergebnis

Kopfzellen mit anderen Kopfzellen verbinden

Für komplexere Beziehungen zwischen Kopfzellen kann die Verwendung von th-Elementen mit dem scope-Attribut allein für unterstützende Technologien, insbesondere Bildschirmlesegeräte, nicht ausreichend sein.

HTML

Um die Barrierefreiheit des vorherigen Beispiels zu verbessern und es Bildschirmlesegeräten zum Beispiel zu ermöglichen, die zugehörigen Überschriften mit jeder Kopfzelle auszusprechen, kann das headers-Attribut zusammen mit id-Attributen eingeführt werden. Aufgrund der Art und Weise, wie die "Aussprache"-Spalte im Beispiel in zwei Spalten aufgeteilt ist, indem eine "Zwei-Zeilen"-Kopfzeile eingeführt wird, können unterstützende Technologien wie Bildschirmlesegeräte möglicherweise nicht erkennen, zu welchen zusätzlichen Kopfzellen (th-Elementen) die "Aussprache"-Kopfzelle gehört und umgekehrt. Daher wird das headers-Attribut auf den "Aussprache"-, "IPA"- und "Neuschreibung"-Kopfzellen verwendet, um die zugehörigen Kopfzellen basierend auf den Werten der einzigartigen Bezeichner aus den hinzugefügten id-Attributen in Form einer durch Leerzeichen getrennten Liste zu verknüpfen.

Hinweis: Es wird empfohlen, beschreibendere und nützlichere Werte für das id-Attribut zu verwenden. Jedes id in einem Dokument muss eindeutig sein. In diesem Beispiel sind die id-Werte Einzelzeichen, um den Fokus auf das Konzept des headers-Attributs zu legen.

html
<table>
  <tr>
    <th scope="col" rowspan="2">Symbol</th>
    <th scope="col" rowspan="2">Code word</th>
    <th scope="col" colspan="2" id="p" headers="i r">Pronunciation</th>
  </tr>
  <tr>
    <th scope="col" id="i" headers="p">IPA</th>
    <th scope="col" id="r" headers="p">Respelling</th>
  </tr>
  <tr>
    <th scope="row">A</th>
    <td>Alfa</td>
    <td>ˈælfa</td>
    <td>AL fah</td>
  </tr>
  <tr>
    <th scope="row">B</th>
    <td>Bravo</td>
    <td>ˈbraːˈvo</td>
    <td>BRAH voh</td>
  </tr>
  <tr>
    <th scope="row">C</th>
    <td>Charlie</td>
    <td>ˈtʃɑːli</td>
    <td>CHAR lee</td>
  </tr>
  <tr>
    <th scope="row">D</th>
    <td>Delta</td>
    <td>ˈdeltɑ</td>
    <td>DELL tah</td>
  </tr>
</table>

Ergebnis

Das visuelle Ergebnis bleibt unverändert gegenüber der vorherigen Beispieltabelle.

Technische Zusammenfassung

Inhaltskategorien Keine.
Erlaubter Inhalt Flussinhalt, jedoch ohne Kopf-, Fußzeilen-, Gliederungs- oder Überschrifteninhalte als Nachkommen.
Tag-Auslassung Das Start-Tag ist obligatorisch.
Das End-Tag kann weggelassen werden, wenn es direkt von einem <th>- oder <td>-Element gefolgt wird oder wenn es in seinem Eltern-Element keine weiteren Daten gibt.
Erlaubte Eltern Ein <tr>-Element.
Implizierte ARIA Role columnheader oder rowheader
Erlaubte ARIA Roles Beliebig
DOM-Schnittstelle [`HTMLTableCellElement`](/de/docs/Web/API/HTMLTableCellElement)

Spezifikationen

Specification
HTML Standard
# the-th-element

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch