Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. HTML
  3. Reference
  4. Elements
  5. <tr>

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

<tr>: Das Table-Row-Element

Baseline Widely available *

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

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

Das<tr>HTML-Element definiert eine Zeile von Zellen in einer Tabelle. Die Zellen der Zeile können dann unter Verwendung einer Mischung aus<td> (Datenzelle) und<th> (Header-Zelle) Elementen eingerichtet werden.

Probieren Sie es aus

<table>  <caption>    Alien football stars  </caption>  <thead>    <tr>      <th scope="col">Player</th>      <th scope="col">Gloobles</th>      <th scope="col">Za'taak</th>    </tr>  </thead>  <tbody>    <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>  </tbody></table>
th,td {  border: 1px solid rgb(160 160 160);  padding: 8px 10px;}th[scope="col"] {  background-color: #505050;  color: white;}th[scope="row"] {  background-color: #d6ecd4;}td {  text-align: center;}tr:nth-of-type(even) {  background-color: #eeeeee;}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 dieglobalen Attribute.

Veraltete Attribute

Die folgenden Attribute sind veraltet und sollten nicht verwendet werden. Sie werden hier nur zu Referenzzwecken dokumentiert, um bestehende Codes zu aktualisieren und aus historischem Interesse.

alignVeraltet

Gibt die horizontale Ausrichtung jeder Zeilenzelle an. Die möglichenaufgezählten Werte sindleft,center,right,justify undchar. Wenn unterstützt, richtet der Wertchar den Textinhalt am Zeichen aus, das imchar-Attribut definiert ist, und am durch dascharoff-Attribut definierten Versatz. Verwenden Sie stattdessen dietext-align-CSS-Eigenschaft, da dieses Attribut veraltet ist.

bgcolorVeraltet

Definiert die Hintergrundfarbe jeder Zeilenzelle. Der Wert ist eine HTML-Farbe; entweder ein6-stelliger hexadezimaler RGB-Code, eingeleitet durch#, oder einFarb-Schlüsselwort. Andere CSS<color>-Werte werden nicht unterstützt. Verwenden Sie stattdessen diebackground-color-CSS-Eigenschaft, da dieses Attribut veraltet ist.

charVeraltet

Gibt die Ausrichtung des Inhalts an einem Zeichen jeder Zeilenzelle an. Typische Werte hierfür sind ein Punkt (.), wenn versucht wird, Zahlen oder Geldwerte auszurichten. Wennalign nicht aufchar gesetzt ist, wird dieses Attribut ignoriert.

charoffVeraltet

Gibt die Anzahl der Zeichen an, um die Zellinhalte der Zeile von dem durch daschar-Attribut angegebenen Ausrichtungszeichen zu versetzen.

valignVeraltet

Gibt die vertikale Ausrichtung jeder Zeilenzelle an. Die möglichenaufgezählten Werte sindbaseline,bottom,middle undtop. Verwenden Sie stattdessen dievertical-align-CSS-Eigenschaft, da dieses Attribut veraltet ist.

Verwendungshinweise

  • Das<tr>-Element ist nur als untergeordnetes Element eines<thead>,<tbody> oder<tfoot>-Elements gültig.
  • Wenn das<tr> als direktes Kind seines übergeordneten<table>-Elements platziert wird, wird das<tbody> als übergeordnetes Element impliziert und Browser fügen das<tbody> dem Markup hinzu.
  • Das implizite<tbody>-Element wird nur unterstützt, wenn die<table> anderweitig keine untergeordneten<tbody>-Elemente hat und nur, wenn das<tr> nach allen<caption>,<colgroup> und<thead>-Elementen eingefügt wird.
  • Die CSS-Pseudo-Klassen:nth-of-type,:first-of-type und:last-of-type sind oft nützlich, um die gewünschte Reihe von Zeilen und deren Daten- und Headerzellen (<td> und<th> Elemente) auszuwählen.
  • Wenn ein<tr> als direktes Kind der<table> enthalten ist, da der Browser ein<tbody> dem Markup hinzufügt, funktionieren CSS-Selektoren wietable > tr möglicherweise nicht wie erwartet oder überhaupt nicht.

Beispiele

Siehe<table>, um ein vollständiges Tabellenbeispiel mit allgemeinen Standards und Best Practices zu erhalten.

Grundlegende Zeileneinrichtung

Dieses Beispiel demonstriert eine Tabelle mit vier Zeilen und drei Spalten, wobei die erste Spalte Header für die Datenzellen der Zeilen enthält.

HTML

Vier<tr>-Elemente werden verwendet, um vier Tabellenzeilen zu erstellen. Jede Zeile enthält drei Zellen - eine Headerzelle (<th>) und zwei Datenzellen (<td>), womit drei Spalten erstellt werden. Dasscope-Attribut, das auf jeder Headerzelle festgelegt ist, gibt an, auf welche Zellen sie sich beziehen, in diesem Beispiel alle Datenzellen innerhalb derrow.

html
<table>  <tbody>    <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>  </tbody></table>

CSS

Die CSS:nth-of-type-Pseudo-Klasse wird verwendet, um jedeungerade Zeile auszuwählen und diebackground-color dieser Zeilen auf einen etwas dunkleren Ton zu setzen, was einen sogenannten "Zebrastreifen"-Effekt erzeugt. Dieser wechselnde Hintergrund macht die Datenzeilen in der Tabelle einfacher zu analysieren und zu lesen - man stelle sich vor, es gäbe viele Zeilen und Spalten und man versuche, einige Daten in einer bestimmten Zeile zu finden. Zusätzlich werden die Zeilenkopfzellen (<th>-Elemente) mit einerbackground-color hervorgehoben, um sie von den Datenzellen (<td>-Elemente) zu unterscheiden.

css
tr:nth-of-type(odd) {  background-color: #eeeeee;}tr th[scope="row"] {  background-color: #d6ecd4;}
table {  border-collapse: collapse;  border: 2px solid rgb(140 140 140);  font-family: sans-serif;  font-size: 0.8rem;  letter-spacing: 1px;}th,td {  border: 1px solid rgb(160 160 160);  padding: 8px 10px;}

Ergebnis

Kopfzeile

Dieses Beispiel erweitert die Basistabelle aus demvorherigen Beispiel, indem eine Kopfzeile als erste Zeile der Tabelle hinzugefügt wird.

HTML

Eine zusätzliche Tabellenzeile (<tr>) wird als erste Zeile der Tabelle mit Spaltenkopfzellen (<th>) hinzugefügt, um jeder Spalte einen Header zu geben. Wir platzieren diese Zeile in einem<thead>-Gruppierungselement, um anzuzeigen, dass dies der Kopf der Tabelle ist. Dasscope-Attribut wird jeder Headerzelle (<th>) innerhalb dieser Kopfzeile hinzugefügt, um explizit anzugeben, dass sich jede Headerzelle auf alle Zellen innerhalb ihrer eigenen Spalte bezieht, auch wenn diese Zellen im<tbody> sind.

html
<table>  <thead>    <tr>      <th scope="col">Symbol</th>      <th scope="col">Code word</th>      <th scope="col">Pronunciation</th>    </tr>  </thead>  <tbody>    <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>  </tbody></table>

CSS

Das CSS ist fast unverändert zumvorherigen Beispiel, abgesehen von einigen zusätzlichen Stilen, um die "Kopfzeile" hervorzuheben, sodass die Header der Spalten von den anderen Zellen auffallen.

css
tr:nth-of-type(odd) {  background-color: #eeeeee;}tr th[scope="col"] {  background-color: #505050;  color: white;}tr th[scope="row"] {  background-color: #d6ecd4;}
table {  border-collapse: collapse;  border: 2px solid rgb(140 140 140);  font-family: sans-serif;  font-size: 0.8rem;  letter-spacing: 1px;}th,td {  border: 1px solid rgb(160 160 160);  padding: 8px 10px;}

Ergebnis

Zeilen sortieren

Es gibt keine nativen Methoden zum Sortieren der Zeilen (<tr>-Elemente) eines<table>. Aber durch die Verwendung vonArray.prototype.sort(),Node.removeChild undNode.appendChild kann eine benutzerdefiniertesort()-Funktion in JavaScript implementiert werden, um eineHTMLCollection von<tr>-Elementen zu sortieren.

HTML

Ein<tbody>-Element wird in dieser Basistabelle verwendet, um den Tabellenkörperschnitt zu markieren und drei Zeilen (<tr>-Elemente) mit Daten (<td>-Elemente) einzuschließen, die eine Spalte mit Zahlen in absteigender Reihenfolge erstellen.

html
<table>  <tbody>    <tr>      <td>3</td>    </tr>    <tr>      <td>2</td>    </tr>    <tr>      <td>1</td>    </tr>  </tbody></table>

JavaScript

Im folgenden JavaScript-Code wird die erstelltesort()-Funktion dem<tbody>-Element zugeordnet, sodass sie die Tabellenzellen in aufsteigender Reihenfolge nach Wert sortiert und die Anzeige entsprechend aktualisiert.

js
HTMLTableSectionElement.prototype.sort = function (cb) {  Array.from(this.rows)    .sort(cb)    .forEach((e) => this.appendChild(this.removeChild(e)));};document  .querySelector("table")  .tBodies[0].sort((a, b) => a.textContent.localeCompare(b.textContent));
table {  border-collapse: collapse;  border: 2px solid rgb(140 140 140);  font-family: sans-serif;  font-size: 0.8rem;  letter-spacing: 1px;}td {  border: 1px solid rgb(160 160 160);  padding: 4px 8px;}

Ergebnis

Zeilen sortieren mit einem Klick auf Headerzellen

Dieses Beispiel erweitert die Basistabelle aus demvorherigen Beispiel, indem das Sortieren interaktiv und unabhängig für mehrere Spalten gemacht wird.

HTML

Eine zusätzliche Datenzelle (<td>-Element) wird jeder Zeile (<tr>-Element) innerhalb des Tabellenkörpers (<tbody>-Element) hinzugefügt, um eine zweite Spalte mit Buchstaben in aufsteigender Reihenfolge zu erstellen. Mit dem<thead>-Element wird ein Kopfbereich vor dem Körperbereich eingeführt, um eine Kopfzeile mit Tabellenkopfzellen (<th>-Element) einzuführen. Diese Kopfzellen werden im folgenden JavaScript-Code verwendet, um sie klickbar zu machen und die entsprechende Sortierung bei jedem Klick auszuführen.

html
<table>  <thead>    <tr>      <th>Numbers</th>      <th>Letters</th>    </tr>  </thead>  <tbody>    <tr>      <td>3</td>      <td>A</td>    </tr>    <tr>      <td>2</td>      <td>B</td>    </tr>    <tr>      <td>1</td>      <td>C</td>    </tr>  </tbody></table>

JavaScript

Ein Klickereignishandler wird jedem Tabellenkopf (<th>-Element) jeder<table> imdocument hinzugefügt; er sortiert alle Zeilen (<tr>-Elemente) des<tbody> basierend auf den Inhalten der Datenzellen (<td>-Elemente), die in den Zeilen enthalten sind.

Hinweis:Diese Lösung geht davon aus, dass die<td>-Elemente durch reinen Text ohne Tochterelemente gefüllt sind.

js
const allTables = document.querySelectorAll("table");for (const table of allTables) {  const tBody = table.tBodies[0];  const rows = Array.from(tBody.rows);  const headerCells = table.tHead.rows[0].cells;  for (const th of headerCells) {    const cellIndex = th.cellIndex;    th.addEventListener("click", () => {      rows.sort((tr1, tr2) => {        const tr1Text = tr1.cells[cellIndex].textContent;        const tr2Text = tr2.cells[cellIndex].textContent;        return tr1Text.localeCompare(tr2Text);      });      tBody.append(...rows);    });  }}
table {  border-collapse: collapse;  border: 2px solid rgb(140 140 140);  font-family: sans-serif;  font-size: 0.8rem;  letter-spacing: 1px;}th,td {  border: 1px solid rgb(160 160 160);  padding: 4px 8px;}th {  background-color: #505050;  color: white;  cursor: pointer;}

Ergebnis

Hinweis:Um verwendbar und zugänglich zu sein, muss die Kopfzelle jeder sortierbaren Spalte als Sortierschaltfläche erkennbar sein und jede muss definieren, ob die Spalte derzeit aufsteigend oder absteigend sortiert ist, sowohl visuell als auch mit demaria-sort-Attribut. Weitere Informationen finden Sie imARIA Authoring Practices Guide, imBeispiel für sortierbare Tabellen.

Technische Zusammenfassung

InhaltskategorienKeine
Erlaubter Inhalt Null oder mehr<td> und/oder<th> Elemente;script-unterstützende Elemente (<script> und<template>) sind ebenfalls erlaubt.
Tag-Auslassung Start-Tag ist obligatorisch. Das End-Tag kann weggelassen werden, wenn das<tr>-Element direkt von einem anderen<tr>-Element gefolgt wird oder wenn die Zeile das letzte Element in ihrem übergeordneten Tabellengruppen-Element (<thead>,<tbody> oder<tfoot>) ist.
Erlaubte Eltern<table> (nur wenn die Tabelle kein untergeordnetes<tbody>-Element hat, und selbst dann nur nach eventuell vorhandenen<caption>,<colgroup> und<thead> Elementen); andernfalls muss das übergeordnete Element ein<thead>,<tbody> oder<tfoot>-Element sein.
Implizite ARIA-Rollerow
Erlaubte ARIA-RollenBeliebig
DOM-Schnittstelle[`HTMLTableRowElement`](/de/docs/Web/API/HTMLTableRowElement)

Spezifikationen

Specification
HTML
# the-tr-element

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp