<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.

* Some parts of this feature may have varying levels of support.

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

<table>
  <caption>
    Alien football stars
  </caption>
  <tr>
    <th scope="col">Player</th>
    <th scope="col">Gloobles</th>
    <th scope="col">Za'taak</th>
  </tr>
  <tr>
    <th scope="row">TR-7</th>
    <td>7</td>
    <td>4,569</td>
  </tr>
  <tr>
    <th scope="row">Khiresh Odo</th>
    <td>7</td>
    <td>7,223</td>
  </tr>
  <tr>
    <th scope="row">Mia Oolong</th>
    <td>9</td>
    <td>6,219</td>
  </tr>
</table>
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;
}

td {
  text-align: center;
}

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

table {
  border-collapse: collapse;
  border: 2px solid rgb(140 140 140);
  font-family: sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
}

caption {
  caption-side: bottom;
  padding: 10px;
}

Attribute

Dieses Element enthält die globalen Attribute.

abbr

Eine kurze, abgekürzte Beschreibung des Inhalts der Kopfzelle, die als alternatives Label zur Verwendung für die Kopfzelle bereitgestellt wird, wenn auf die Zelle in anderen Kontexten verwiesen wird. Einige Benutzeragenten, wie Screenreader, können diese Beschreibung vor dem eigentlichen Inhalt wiedergeben.

colspan

Ein nicht-negativer Ganzzahlwert, der angibt, wie viele Spalten die Kopfzelle überbrückt oder erweitert. Der Standardwert ist 1. Benutzeragenten verwerfen Werte größer als 1000 als unkorrekt und setzen diese Werte auf 1 zurück.

headers

Eine Liste von durch Leerzeichen getrennten Zeichenfolgen, die den id-Attributen der <th>-Elemente entsprechen, die die Kopfzellen für diese Kopfzelle bereitstellen.

rowspan

Ein nicht-negativer Ganzzahlwert, der angibt, wie viele Zeilen die Kopfzelle überbrückt oder erweitert. Der Standardwert ist 1; ist der Wert auf 0 gesetzt, erstreckt sich die Kopfzelle bis zum Ende des Tabellensektionsgruppierungsabschnitts (<thead>, <tbody>, <tfoot>, auch wenn implizit definiert), dem das <th>-Element gehört. Werte größer als 65534 werden auf 65534 gekürzt.

scope

Definiert die Zellen, zu denen sich die Kopfzelle (im <th>-Element definiert) verhält. Mögliche aufzählbare 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 ihre Zellen;
  • colgroup: Die Kopfzelle gehört zu einer Spaltengruppe und bezieht sich auf alle ihre Zellen.

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

Veraltete Attribute

Die folgenden Attribute sind veraltet und sollten nicht verwendet werden. Sie werden hier der Vollständigkeit halber dokumentiert, um bestehende Codes zu aktualisieren und aus historischem Interesse.

align Veraltet

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

axis Veraltet

Enthält eine Liste von durch Leerzeichen getrennten Zeichenfolgen, die 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, dem ein # vorangestellt ist, 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 Funktion. Es war ursprünglich vorgesehen, die Ausrichtung des Inhalts an einem Zeichen der Kopfzelle zu spezifizieren. Typische Werte hierfür sind ein Punkt (.), wenn versucht wird, Zahlen oder Geldbeträge auszurichten. Wenn align nicht auf char gesetzt ist, wird dieses Attribut ignoriert.

charoff Veraltet

Hat keine Funktion. Es war ursprünglich vorgesehen, die Anzahl der Zeichen anzugeben, um die der Kopfzelleninhalt vom im char-Attribut angegebenen Zeichen auszugleichen.

height Veraltet

Definiert eine empfohlene Höhe der 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 aufzählbaren 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 der Kopfzelle. Verwenden Sie stattdessen die width CSS-Eigenschaft, da dieses Attribut veraltet ist.

Verwendungshinweise

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

  • In einfachen Kontexten ist die Verwendung des scope-Attributs in Kopfzellen (<th>-Elemente) redundant, weil scope impliziert wird. Allerdings kann es bei bestimmten unterstützenden Technologien zu Problemen bei der korrekten Interpretation kommen, sodass die Angabe der Kopfzeilenreichweite die Benutzererfahrung verbessern kann.

  • Bei der Verwendung der Attribute colspan und rowspan, um Kopfzellen über mehrere Spalten und Zeilen hinweg zu erweitern, werden Zellen ohne definierte Attribute (mit einem Standardwert von 1) automatisch in frei verfügbaren Bereichen in der Tabellenstruktur platziert, die 1x1-Zellen abdecken, wie in der folgenden Abbildung gezeigt:

    Illustration, die das Überbrücken von Spalten und Zeilen von Tabellenzellen zeigt: Zellen 1, 3 und 4 überbrücken zwei Zeilen; Zelle 2 überbrückt zwei Spalten; Zellen 5 und 6 passen in die verfügbaren Zellen, die die zweite und dritte Spalte in der zweiten Zeile bilden.

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

Beispiele

Siehe <table> für ein vollständiges Tabellenbeispiel, das gängige Standards und Best Practices einführt.

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 fungieren, um das Verständnis der Informationen in den Spalten zu erleichtern und die Daten zu identifizieren. Um anzuzeigen, 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), die als erste Zelle eingeführt wird. Dies erstellt eine Spalte mit Zeilenüberschriften als erste Spalte der Tabelle. Ähnlich wie bei den Spaltenüberschriften wird das scope-Attribut auf row gesetzt, um festzulegen, auf welche Zellen sich jede Zeilenüberschrift bezieht; im folgenden Beispiel sind dies alle Datenzellen (<td>-Elemente) in jeder Zeile.

Hinweis: Normalerweise werden die Gruppierungselemente <thead> und <tbody> verwendet, um Zeilen mit Überschriften in die entsprechenden Tabellenkopf- und Tabellenkörperabschnitte zu gruppieren. Diese Elemente sind in diesem Beispiel weggelassen, um die Komplexität zu reduzieren und den Fokus auf die Verwendung 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-Regeln werden verwendet, um die Tabelle und ihre Zellen zu stylen. Wir verwenden CSS-Attributselektoren, um Kopfzellen basierend auf ihren scope-Attributwerten zu adressieren und Spalten- sowie Zeilenüberschriften (<th>-Elemente) hervorzuheben, sie von den anderen zu unterscheiden und von den Datenzellen (<td>).

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übergreifung

Dieses Beispiel erweitert und verbessert die grundlegende Tabelle aus dem vorherigen Beispiel, 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 lautschriftliche Wiedergabe (die ursprüngliche Aussprache-Spalte). Die entsprechenden Datenzellen (<td>-Elemente) werden jeder folgenden Zeile hinzugefügt.

Wie in den Verwendungshinweisen gezeigt, können die Attribute colspan und rowspan bei den <th>-Elementen 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 gespannt. Die dritte Kopfzelle wird über zwei Spalten hinweg erweitert (verbleibend in der ersten Zeile). Dieses Setup lässt zwei verfügbare Bereiche in der dritten und vierten Spalte in der zweiten Zeile, in denen die zwei Überschriften innerhalb des zweiten <tr>-Elements automatisch platziert werden, wobei der Standardwert für die Attribute colspan und rowspan 1 ist.

Hinweis: Normalerweise werden <thead> und <tbody>-Elemente verwendet, um Zeilen mit Kopfzeilen in die jeweiligen Tabellenkopf- und Tabellenkörperabschnitte zu gruppieren. Dies ist in diesem Beispiel nicht implementiert, um den Fokus auf die Kopfzeilen und die Übergreifung zu legen 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 ist unverändert vom vorherigen Beispiel.

Ergebnis

Kopfzellen mit anderen Kopfzellen verbinden

Für komplexere Beziehungen zwischen Kopfzeilen reicht die Verwendung von th-Elementen mit dem scope-Attribut allein möglicherweise nicht aus, um unterstützenden Technologien, insbesondere Screenreadern, gerecht zu werden.

HTML

Um die Zugänglichkeit des vorherigen Beispiels zu verbessern und Screenreader, z. B., die mit jeder Kopfzelle verbundenen Überschriften aussprechen zu lassen, 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 unterteilt ist, die eine "Zwei-Zeilen"-Kopfzeile bilden, könnte es für unterstützende Technologien wie Screenreader schwierig sein, zu erkennen, mit welchen zusätzlichen Kopfzellen (th-Elemente) die "Aussprache"-Kopfzelle verwandt ist und umgekehrt. Deshalb wird das headers-Attribut bei der "Aussprache"-, "IPA"- und "Umschrift"-Kopfzelle verwendet, um die verwandten Kopfzellen anhand der Werte der einzigartigen Bezeichner aus den hinzugefügten id-Attributen in Form einer durch Leerzeichen getrennten Liste zuzuordnen.

Hinweis: Es wird empfohlen, beschreibendere und nützlichere Werte für das id-Attribut zu verwenden. Jedes id in einem Dokument muss in diesem Dokument eindeutig sein. In diesem Beispiel sind die id-Werte einstellige Zeichen, um den Fokus auf den Kernpunkt 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 ist unverändert von der vorherigen Beispielstabelle.

Technische Zusammenfassung

Inhaltskategorien Keine.
Erlaubter Inhalt Fließender Inhalt, jedoch ohne Nachkommen von header, footer, sectioning content oder heading content.
Tag-Auslassung Das Start-Tag ist verpflichtend.
Das End-Tag kann weggelassen werden, wenn es unmittelbar von einem <th> oder <td>-Element gefolgt wird oder wenn keine weiteren Daten in seinem Elternelement mehr vorhanden sind.
Erlaubte Eltern Ein <tr>-Element.
Implizite ARIA-Rolle columnheader oder rowheader
Erlaubte ARIA-Rollen Beliebige
DOM-Schnittstelle [`HTMLTableCellElement`](/de/docs/Web/API/HTMLTableCellElement)

Spezifikationen

Specification
HTML
# the-th-element

Browser-Kompatibilität

Siehe auch