<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 verwendet wird, wenn auf die Kopfzelle in anderen Kontexten verwiesen wird. Einige Benutzeragenten, wie Sprachausgaben, können diese Beschreibung vor dem eigentlichen Inhalt anzeigen.

colspan

Ein nicht-negativer Ganzzahlenwert, der angibt, über wie viele Spalten sich die Kopfzelle erstreckt oder ausdehnt. Der Standardwert ist 1. Benutzeragenten verwerfen Werte über 1000 als falsch und setzen solche Werte standardmäßig auf 1.

headers

Eine Liste von leerzeichengetrennten Zeichenfolgen, die den id-Attributen der <th>-Elemente entsprechen, welche die Kopfzeilen für diese Kopfzelle bereitstellen.

rowspan

Ein nicht-negativer Ganzzahlenwert, der angibt, über wie viele Zeilen sich die Kopfzelle erstreckt oder ausdehnt. Der Standardwert ist 1; wenn sein Wert auf 0 gesetzt ist, erstreckt sich die Kopfzelle bis zum Ende des Tabellengruppierungsabschnitts (<thead>, <tbody>, <tfoot>, selbst wenn implizit definiert), zu dem das <th> gehört. Werte über 65534 werden bei 65534 abgeschnitten.

scope

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

  • row: Die Kopfzeile bezieht sich auf alle Zellen der Zeile, zu der sie gehört;
  • col: Die Kopfzeile bezieht sich auf alle Zellen der Spalte, zu der sie gehört;
  • rowgroup: Die Kopfzeile gehört zu einer Zeilengruppe und bezieht sich auf alle ihre Zellen;
  • colgroup: Die Kopfzeile 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 sind hier nur zur Referenz bei der Aktualisierung vorhandenen Codes und aus historischem Interesse dokumentiert.

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 char-Wert den Textinhalt auf das im char-Attribut definierte Zeichen und das im charoff-Attribut definierte Leerzeichen aus. Verwenden Sie die text-align CSS-Eigenschaft anstatt, da dieses Attribut veraltet ist.

axis Veraltet

Enthält eine Liste von leerzeichengetrennten 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, mit einem # vorangestellt, oder ein Farbname. Andere CSS <color> Werte werden nicht unterstützt. Verwenden Sie die background-color CSS-Eigenschaft stattdessen, da dieses Attribut veraltet ist.

char Veraltet

Tut nichts. Es war ursprünglich vorgesehen, die Ausrichtung des Inhalts auf ein Zeichen der Kopfzelle zu spezifizieren. Typische Werte hierfür sind ein Punkt (.), wenn versucht wird, Zahlen oder Geldwerte auszurichten. Wenn align nicht auf char gesetzt ist, wird dieses Attribut ignoriert.

charoff Veraltet

Tut nichts. Es war ursprünglich vorgesehen, die Anzahl der Zeichen zu spezifizieren, um den Inhalt der Kopfzelle von dem im char-Attribut spezifizierten Ausrichtungszeichen zu versetzen.

height Veraltet

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

width Veraltet

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

Anwendungshinweise

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

  • In einfachen Kontexten ist die Verwendung des scope-Attributs auf Kopfzellen (<th> Elemente) redundant, da scope abgeleitet wird. Allerdings kann es sein, dass bestimmte unterstützende Technologien die Ableitung nicht korrekt durchführen, daher kann die Angabe des Kopfbereichs die Benutzererfahrung verbessern.

  • Bei der Verwendung der Attribute colspan und rowspan, um Kopfzellen über mehrere Spalten und Zeilen hinweg zu spannen, werden Zellen ohne definierte Attribute (mit einem Standardwert von 1) automatisch in frei verfügbare Bereiche in der Tabellenstruktur eingefügt, die 1x1-Zellen umfassen, wie in der folgenden Abbildung dargestellt:

    Illustration, die das Spannen 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 die zweite und dritte Spalte in der zweiten Zeile sind

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

Beispiele

Siehe <table> für ein komplettes Tabellenbeispiel, das allgemeine Standards und bewährte Praktiken einführt.

Grundlegende Spalten- und Zeilenköpfe

Dieses Beispiel verwendet <th>-Elemente zur Einführung von Spalten- und Zeilenköpfen in einer grundlegenden Tabellenstruktur.

HTML

Die erste Zeile (<tr>-Element) enthält die Spaltenköpfe (<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 jeder Spaltenkopf 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 einen Zeilenkopf (<th>-Element), der als erste Zelle eingeführt wird. Dies schafft eine Spalte mit Zeilenköpfen als erste Spalte der Tabelle. Ähnlich wie bei den Spaltenköpfen wird das scope-Attribut auf row gesetzt, um anzugeben, auf welche Zellen sich jeder Zeilenkopf bezieht, die in dem unten stehenden Beispiel alle Datenzellen (<td>-Elemente) in jeder Zeile sind.

Hinweis: Normalerweise werden die Gruppierungselemente <thead> und <tbody> verwendet, um Zeilen mit Köpfen in die entsprechenden Tabellenkopf- und -körperbereiche zu gruppieren. Diese Elemente sind in diesem Beispiel weggelassen, um die Komplexität zu reduzieren und sich auf die Verwendung von Kopfzellen zu konzentrieren.

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-Styles werden verwendet, um die Tabelle und ihre Zellen zu gestalten. Wir verwenden CSS Attributselektoren, um Kopfzellen basierend auf ihren scope-Attributwerten zu targetieren und Spalten- sowie Zeilenköpfe (<th>-Elemente) hervorzuheben und 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übergreifende Tabellenköpfe

Dieses Beispiel erweitert und verbessert die Grundtabelle aus dem vorhergehenden Beispiel, indem eine zweite Zeile für zusätzliche Spaltenköpfe hinzugefügt wird.

HTML

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

Wie in den Anwendungshinweisen gezeigt, können die Attribute colspan und rowspan für die <th>-Elemente verwendet werden, um die Kopfzellen den richtigen Spalten und Zeilen zuzuordnen. Um einen "zwei Zeilen"-Kopf in der Tabellenstruktur zu erreichen, werden die ersten beiden Kopfzellen im ersten <tr>-Element über zwei Zeilen hinweg erstreckt. Die dritte Kopfzelle erstreckt sich über zwei Spalten (verbleibend in der ersten Zeile). Diese Anordnung lässt zwei verfügbare Bereiche in der dritten und vierten Spalte in der zweiten Zeile, in denen die beiden Köpfe innerhalb des zweiten <tr>-Elements automatisch platziert werden, wobei der Standardwert 1 für die Attribute colspan und rowspan gilt.

Hinweis: Normalerweise werden die <thead> und <tbody> Elemente verwendet, um Zeilen mit Köpfen in die entsprechenden Tabellenkopf- und -körperbereiche zu gruppieren. Dies ist in diesem Beispiel nicht implementiert, um sich auf die Köpfe und das Spannen 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

Verknüpfen von Kopfzellen mit anderen Kopfzellen

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

HTML

Um die Zugänglichkeit des vorherigen Beispiels zu verbessern und z.B. Sprachausgaben die Möglichkeit zu geben, die den Kopfzellen zugeordneten Kopfzeilen auszusprechen, kann das headers-Attribut zusammen mit id-Attributen eingeführt werden. Aufgrund der Art und Weise, wie die "Aussprache"-Spalte in zwei Spalten aufgeteilt ist, wird in dem Beispiel ein "zwei Zeilen"-Kopf eingeführt. Unterstützende Technologien wie Sprachausgaben können möglicherweise nicht identifizieren, mit welchen zusätzlichen Kopfzellen (th Elemente) die "Aussprache" Kopfzelle und umgekehrt verknüpft sind. Daher wird das headers-Attribut auf den Kopfzellen "Aussprache", "IPA" und "Lautschrift" verwendet, um die zugehörigen Kopfzellen basierend auf den Werten der eindeutigen Bezeichner aus den hinzugefügten id-Attributen in Form einer leerzeichengetrennten Liste zuzuordnen.

Hinweis: Es wird empfohlen, für das id-Attribut aussagekräftigere und nützlichere Werte zu verwenden. Jedes id in einem Dokument muss für dieses Dokument eindeutig sein. In diesem Beispiel sind die id-Werte einzelne Zeichen, um sich auf das Konzept des headers Attributs zu konzentrieren.

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 dem vorherigen Beispiel.

Technische Zusammenfassung

Inhaltskategorien Keine.
Zulässiger Inhalt Flow-Inhalte, aber ohne Kopf-, Fuß-, Gliederungs- oder Titelinhaltsnachkommen.
Tag-Auslassung Das Start-Tag ist obligatorisch.
Das End-Tag kann ausgelassen werden, wenn es unmittelbar von einem <th> oder <td>-Element gefolgt wird oder wenn keine weiteren Daten in seinem übergeordneten Element vorhanden sind.
Zulässige Eltern Ein <tr>-Element.
Implizite ARIA-Rolle columnheader oder rowheader
Zulässige ARIA-Rollen Beliebig
DOM-Schnittstelle [`HTMLTableCellElement`](/de/docs/Web/API/HTMLTableCellElement)

Spezifikationen

Specification
HTML
# the-th-element

Browser-Kompatibilität

Siehe auch