W3docs

HTML <td> Tag

Das <td>-Tag definiert eine Standard-Datenzelle in einer HTML-Tabelle. Es muss als Kind-Element von <tr> verwendet werden.

Das <td>-Tag definiert eine Standard-Datenzelle in einer HTML-Tabelle. Es muss als Kind-Element von <tr> verwendet werden, das eine Tabellenzeile definiert. Zum Definieren einer Kopfzelle wird das <th>-Tag verwendet.

Das <td>-Tag kann Text, Formulare, Bilder, Tabellen usw. enthalten. Der Inhalt darin ist standardmäßig linksbündig ausgerichtet.

Tipp

Wenn Sie tabellarische Daten in Tabellen darstellen, muss jede Datenzelle einzeln als <td>-Element hinzugefügt werden.

Alle Zeilen in der Tabelle enthalten eine gleiche Anzahl von Zellen, die der Anzahl der Zellen in der längsten Zeile entspricht. Wenn eine Zeile weniger Zellen enthält, füllt der Browser die Zeile automatisch auf und platziert leere Zellen am Ende.

Tipp

Komplexere Tabellen können die Elemente <caption>, <colgroup>, <col>, <tfoot>, <tbody> oder <thead> enthalten.

Wenn Sie betonen möchten, dass in anderen Zellen keine Daten vorhanden sind, erstellen Sie dort, wo es nötig ist, eine Zelle ohne Inhalt.

Die vom Browser hinzugefügten Zellen haben keine Rahmen, und wenn sie aufeinander folgen, werden sie als eine zusammenhängende Zelle dargestellt.

Syntax

Das <td>-Tag wird paarweise verwendet. Der Inhalt wird zwischen dem öffnenden (<td>) und dem schließenden (</td>) Tag geschrieben.

HTML <td>-Tag

<table> 
  <tr> 
    <td>...</td> 
  </tr> 
</table>

Beispiel des HTML <td>-Tags:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      table {
        width: 80%;
        margin: 30px auto;
        border-collapse: collapse;
      }
      tr {
        background-color: lightgrey;
      }
      tr:first-child {
        background-color: #1c87c9;
        color: #fff;
      }
      th,
      td {
        padding: 10px;
        border: 1px solid #666;
      }
    </style>
  </head>
  <body>
    <table>
      <tr>
        <th>Month</th>
        <th>Date</th>
      </tr>
      <tr>
        <td>March</td>
        <td>10.09.2018</td>
      </tr>
      <tr>
        <td>June</td>
        <td>18.07.2018</td>
      </tr>
    </table>
  </body>
</html>

In diesem Beispiel verwenden wir das <tr>-Tag zum Definieren von Tabellenzeilen, <th> zum Definieren von Kopfzellen und <td> zum Definieren von Standard-Datenzellen.

Spalten und Zeilen überbrücken

Die Attribute colspan und rowspan werden häufig mit dem <td>-Tag verwendet, damit sich eine einzelne Zelle über mehrere Spalten oder Zeilen erstrecken kann.

  • colspan legt fest, wie viele Spalten eine Zelle einnimmt. Der Wert muss eine positive ganze Zahl sein; der Standardwert ist 1. Eine Zelle mit colspan="2" nimmt den horizontalen Platz von zwei normalen Zellen ein, daher sollte die Zeile, zu der sie gehört, eine <td> weniger als die anderen Zeilen enthalten.
  • rowspan legt fest, wie viele Zeilen eine Zelle einnimmt. Der Wert muss eine positive ganze Zahl sein; der Standardwert ist 1. Eine Zelle mit rowspan="2" erstreckt sich in die nächste Zeile hinein, sodass diese nächste Zeile die <td> weglassen sollte, die darunter stehen würde.

Achten Sie darauf, dass ein Span nicht größer ist, als die Tabelle zulässt. Wenn ein colspan oder rowspan über den Rand der Tabelle hinausgeht, begrenzen Browser ihn auf die verfügbaren Spalten oder Zeilen, anstatt neue hinzuzufügen. Umgekehrt gilt: Wenn Sie vergessen, die Zellen zu entfernen, die ein Span überlappt, hat die Zeile zu viele Zellen und das Tabellenlayout bricht zusammen.

Beispiel des HTML <td>-Tags mit dem colspan-Attribut:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      table {
        width: 80%;
        margin: 30px auto;
        border-collapse: collapse;
      }
      tr {
        background-color: #e6ebef;
      }
      tr:first-child {
        background-color: #1c87c9;
        color: #fff;
      }
      tr:last-child {
        height: 60px;
      }
      tr:last-child td {
        background-color: #a3cced;
        vertical-align: bottom;
      }
      tr:last-child span {
        font-size: 14px;
      }
      th,
      td {
        padding: 10px;
        border: 1px solid #666;
      }
    </style>
  </head>
  <body>
    <table>
      <tr>
        <th>Company e-mail</th>
        <th>Date</th>
      </tr>
      <tr>
        <td>
          <a href="#">[email protected]</a>
        </td>
        <td>01.09.2017</td>
      </tr>
      <tr>
        <td colspan="2">[email protected];
          <strong>01.09.2017 </strong>
          <span>(received date)</span>
        </td>
      </tr>
    </table>
  </body>
</html>

Ergebnis

td Beispiel1

Beispiel des HTML <td>-Tags mit dem rowspan-Attribut:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      table {
        width: 80%;
        margin: 30px auto;
        border-collapse: collapse;
      }
      th, td {
        padding: 10px;
        border: 1px solid #666;
      }
      thead tr {
        background-color: #1c87c9;
        color: #fff;
      }
      tbody td {
        background-color: #e6ebef;
      }
      .year {
        background-color: #a3cced;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>Month</th>
          <th>Year</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>March</td>
          <td class="year" rowspan="2">2014</td>
        </tr>
        <tr>
          <td>April</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

Zellen Überschriften für die Barrierefreiheit zuordnen

Bei einer einfachen Tabelle können Screenreader jede Datenzelle automatisch der zugehörigen Spalten- und Zeilenkopfzeile zuordnen. Bei einer komplexen Tabelle — mit mehreren Kopfzeilenebenen oder überbrückten Zellen — funktioniert diese automatische Zuordnung nicht mehr. Um solche Tabellen für assistive Technologien lesbar zu halten, versehen Sie jedes <th> mit einem id-Attribut und listen Sie die entsprechenden IDs im headers-Attribut jedes zugehörigen <td> auf. Eine Zelle kann auf mehrere Kopfzeilen verweisen, indem deren IDs mit Leerzeichen getrennt werden.

Beispiel des HTML <td>-Tags mit dem headers-Attribut:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      table {
        border-collapse: collapse;
        margin: 30px auto;
      }
      th, td {
        padding: 10px;
        border: 1px solid #666;
      }
    </style>
  </head>
  <body>
    <table>
      <tr>
        <th id="name">Name</th>
        <th id="hours">Hours</th>
        <th id="rate">Rate</th>
      </tr>
      <tr>
        <td headers="name">Ann</td>
        <td headers="hours">38</td>
        <td headers="rate">$25</td>
      </tr>
      <tr>
        <td headers="name">Bob</td>
        <td headers="hours">40</td>
        <td headers="rate">$30</td>
      </tr>
    </table>
  </body>
</html>

Hier verweist jede Datenzelle auf die Kopfzeile, die sie beschreibt, sodass ein Screenreader beispielsweise „Rate: $25" anstatt nur „$25" ankündigen kann.

Layout-Probleme mit <td>

Standardmäßig richtet sich jede Datenzelle vertikal an den Zellen in derselben Spalte der anderen Zeilen aus. Das Hinzufügen einer zusätzlichen <td> zu nur einer Zeile stört diese Ausrichtung, weil jede folgende Zelle in dieser Zeile um eine Spalte verschoben wird.

Zum Beispiel hat diese Zeile drei Zellen, während der Rest der Tabelle nur zwei hat, sodass ihre Zellen nicht mehr unter den Kopfzeilen ausgerichtet sind:

<tr>
  <th>Month</th>
  <th>Total</th>
</tr>
<tr>
  <td>March</td>
  <td>Q1</td>
  <td>120</td>
</tr>

Die Lösung besteht darin, Zellen mit colspan zusammenzuführen, anstatt eine zusätzliche Spalte hinzuzufügen. Hier überspannt die „March"-Zelle beide Spalten über den Summen und hält das Raster ausgerichtet:

<tr>
  <th>Month</th>
  <th>Total</th>
</tr>
<tr>
  <td colspan="2">March (Q1)</td>
</tr>
<tr>
  <td>April</td>
  <td>120</td>
</tr>

Attribute

AttributWertBeschreibung
abbrtextDefiniert eine abgekürzte Version des Inhalts einer Zelle oder einen alternativen Text. (User-Agents, wie z. B. Screenreader, können diese Beschreibung vor dem eigentlichen Inhalt ausgeben). In HTML 5 nicht unterstützt.
alignleft right center justify charRichtet den Inhalt einer Zelle aus. In HTML 5 nicht unterstützt.
axiscategory_nameKategorisiert Zellen mit ähnlichem Inhalt. In HTML 5 nicht unterstützt.
backgroundbackgroundLegt den Hintergrund einer Zelle fest. In HTML 5 nicht unterstützt.
bgcolorrgb(x,x,x) #xxxxxx colornameDefiniert die Hintergrundfarbe einer Zelle. In HTML 5 nicht unterstützt.
bordercolorbordercolorLegt die Farbe des Rahmens fest. In HTML 5 nicht unterstützt.
charcharacterRichtet den Inhalt einer Zelle an einem Zeichen aus. Wird nur verwendet, wenn das Attribut align="char" gesetzt ist. In HTML 5 nicht unterstützt.
charoffnumberLegt die Anzahl der Zeichen fest, um die der Inhalt vom durch das char-Attribut angegebenen Zeichen versetzt wird. Wird nur verwendet, wenn das Attribut align="char" gesetzt ist. In HTML 5 nicht unterstützt.
colspannumberDefiniert die Anzahl der Spalten, die eine Zelle umspannen soll. Der Attributwert muss eine positive ganze Zahl sein. Standardwert ist 1.
headersheader_idGibt eine oder mehrere Kopfzellen an (definiert durch das <th>-Tag), mit denen eine Standard-Datenzelle verknüpft ist.
height% pixelsLegt die Höhe einer Zelle fest. In HTML 5 nicht unterstützt.
nowrapnowrapGibt an, dass der Inhalt einer Zelle nicht umgebrochen werden soll. In HTML 5 nicht unterstützt.
rowspannumberGibt die Anzahl der Zeilen an, die eine Zelle umspannen soll. Der Attributwert muss eine positive ganze Zahl sein. Standardwert ist 1. Es wird nicht empfohlen, Werte über 65534 zu verwenden, da diese auf 65534 begrenzt werden.
valigntop middle bottom baselineGibt die vertikale Ausrichtung des Inhalts einer Zelle an. In HTML 5 nicht unterstützt. Verwenden Sie stattdessen die CSS-Eigenschaft vertical-align.
width% pixelsLegt die Breite einer Zelle fest. In HTML 5 nicht unterstützt.

Das <td>-Tag unterstützt die globalen Attribute und die Ereignis-Attribute.

Info

Das scope-Attribut ist auf <td> nicht gültig; es gehört zum <th>-Element, wo es angibt, ob eine Kopfzeile für eine Spalte oder eine Zeile gilt. Verwenden Sie stattdessen headers auf einem <td>, um auf die zugehörigen Kopfzellen zu verweisen.

Wie man ein HTML <td>-Tag gestaltet

Die häufigsten <td>-Stile steuern Abstände, Rahmen und Ausrichtung. Verwenden Sie td zusammen mit th als Ziel, damit Kopf- und Datenzellen ein einheitliches Erscheinungsbild haben:

table {
  border-collapse: collapse;
}
td {
  padding: 10px;
  border: 1px solid #666;
  text-align: left;
  vertical-align: middle;
}
td:hover {
  background-color: #f1f7fb;
}

Verwandte Tags

  • <table> — der Container, der alle Zeilen und Zellen enthält.
  • <tr> — definiert eine Tabellenzeile; jedes <td> muss sich innerhalb einer befinden.
  • <th> — definiert eine Kopfzelle, die über das headers-Attribut mit <td> verknüpft ist.

Übungen

Übung
Welche Aussage über die Attribute des HTML td-Tags ist korrekt?
Welche Aussage über die Attribute des HTML td-Tags ist korrekt?
Was this page helpful?