Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Tabellen

Het element <td>

Het <td>-element van HTML definieert een cel van een tabel die data bevat en kan worden gebruikt als een kind van het <tr>-element.

Code
<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>
Resultaat in de browser

Attributen

Dit element bevat de globale attributen.

colspanBevat een niet-negatieve gehele waarde die aangeeft over hoeveel kolommen de datacel zich uitstrekt. De standaardwaarde is 1. Waarden hoger dan 1000 worden afgekapt tot 1000.
headersBevat een door spaties gescheiden lijst van strings, die elk overeenkomen met het id-attribuut van de <th>-elementen die koppen voor deze tabelcel bieden.
rowspanBevat een niet-negatieve gehele waarde die aangeeft over hoeveel rijen de datacel zich uitstrekt. De standaardwaarde is 1; als de waarde is ingesteld op 0, strekt de cel zich uit tot het einde van de tabelgroeperingssectie (<thead>, <tbody>, <tfoot>, ook als deze impliciet is gedefinieerd) waartoe de cel behoort. Waarden hoger dan 65534 worden afgekapt tot 65534.

Verouderde attributen

De volgende attributen zijn verouderd en zouden niet meer gebruikt moeten worden. Ze worden hieronder gedocumenteerd ter referentie bij het bijwerken van bestaande code en enkel voor historisch belang.

abbr Verouderd

Bevat een korte, verkorte beschrijving van de inhoud van de datacel. Sommige user agents, zoals spraaklezers, kunnen deze beschrijving vóór de inhoud zelf presenteren. Plaats de verkorte inhoud in de cel en plaats de (langere) beschrijving in het title-attribuut, aangezien dit attribuut verouderd is. Neem bij voorkeur de inhoud op in de datacel en gebruik CSS om overlopende tekst visueel af te knippen.

align Verouderd

Specificeert de horizontale uitlijning van de datacel. De mogelijke enumerated waarden zijn left, center, right, justify en char. Indien ondersteund, lijnt de waarde char de tekstuele inhoud uit op het teken dat is gedefinieerd in het char-attribuut, met de offset gedefinieerd door het charoff-attribuut. Gebruik in plaats daarvan de CSS-eigenschap text-align, aangezien dit attribuut verouderd is.

axis Verouderd

Bevat een door spaties gescheiden lijst van strings, die elk overeenkomen met het id-attribuut van een groep cellen waarop de datacel van toepassing is.

bgcolor Verouderd

Definieert de achtergrondkleur van de datacel. De waarde is een HTML-kleur; ofwel een 6-cijferige hexadecimale RGB-code, voorafgegaan door een #, ofwel een kleursleutelwoord. Andere CSS-<color>-waarden worden niet ondersteund. Gebruik in plaats daarvan de CSS-eigenschap background-color, aangezien dit attribuut verouderd is.

char Verouderd

Doet niets. Het was oorspronkelijk bedoeld om de uitlijning van de inhoud op een teken van de datacel te specificeren. Typische waarden hiervoor zijn een punt (.) bij het uitlijnen van getallen of geldbedragen. Als align niet is ingesteld op char, wordt dit attribuut genegeerd.

charoff Verouderd

Doet niets. Het was oorspronkelijk bedoeld om het aantal tekens te specificeren waarmee de inhoud van de datacel wordt verschoven ten opzichte van het uitlijningsteken dat is opgegeven in het char-attribuut.

height Verouderd

Definieert een aanbevolen hoogte voor de datacel. Gebruik in plaats daarvan de CSS-eigenschap height, aangezien dit attribuut verouderd is.

scope Verouderd

Definieert de cellen waarop de kop (gedefinieerd in het <th>-element) betrekking heeft. De mogelijke enumerated waarden zijn row, col, rowgroup en colgroup. Gebruik dit attribuut alleen bij het <th>-element om de rij of kolom te definiëren waarvoor het een kop is, aangezien dit attribuut verouderd is voor het <td>-element.

valign Verouderd

Specificeert de verticale uitlijning van de datacel. De mogelijke enumerated waarden zijn baseline, bottom, middle en top. Gebruik in plaats daarvan de CSS-eigenschap vertical-align, aangezien dit attribuut verouderd is.

width Verouderd

Definieert een aanbevolen breedte voor de datacel. Gebruik in plaats daarvan de CSS-eigenschap width, aangezien dit attribuut verouderd is.

Gebruiksopmerkingen

  • <td> mag alleen worden gebruikt binnen een <tr>-element.

  • Bij gebruik van de attributen colspan en rowspan om datacellen over meerdere kolommen en rijen te laten strekken, worden cellen zonder deze attributen (met een standaardwaarde van 1) automatisch ingepast in de vrije beschikbare ruimtes in de tabelstructuur die 1x1-cellen beslaan, zoals geïllustreerd in de volgende afbeelding:

    Illustratie die kolom- en rij-overspanning van tabelcellen demonstreert: cellen 1, 3 en 4 die twee rijen overspannen; cel 2 die twee kolommen overspant; cellen 5 en 6 die passen in de beschikbare cellen die de tweede en derde kolom in de tweede rij zijn

    Opmerking

    Deze attributen mogen niet worden gebruikt om cellen te laten overlappen.

Voorbeelden

Zie <table> voor een compleet tabelvoorbeeld dat gangbare standaarden en best practices introduceert.

Basis-datacellen

Dit voorbeeld gebruikt <td>-elementen samen met andere tabelgerelateerde elementen om een eenvoudige tabel met data over het fonetische alfabet te introduceren.

HTML

Sommige tabelrijen (<tr>-elementen) bevatten zowel kopcellen (<th>-elementen) als datacellen (<td>-elementen). Het <th>-element dat het eerste kind van elke rij is, vormt de eerste kolom van de tabel, waarbij elke <th> de rijkop biedt voor de datacellen in die rij. Elk bijbehorend <td>-element bevat data die is uitgelijnd met de bijbehorende kolomkop en rijkopcel.

Opmerking

Normaal gesproken zou een tabelkopgroep met kolomkoppen worden geïmplementeerd om de informatie in de kolommen makkelijker te begrijpen. De <thead>- en <tbody>-elementen zouden worden gebruikt om dergelijke rijen van koppen en data te groeperen in respectievelijk de tabelkop- en -inhoudsecties. Dit is in dit voorbeeld niet geïmplementeerd om de focus op de datacellen te houden en de complexiteit van dit voorbeeld te verminderen.

HTML
<table>
  <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

Er wordt wat basale CSS gebruikt om de tabel en de cellen te stylen. CSS-attribuutselectors en de pseudo-klasse :nth-of-type worden gebruikt om het uiterlijk van de cellen af te wisselen, zodat de informatie in de tabel makkelijker te begrijpen en te herkennen is.

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

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

tr th[scope="row"] {
  background-color: #d6ecd4;
}
CSS
table {
  border-collapse: collapse;
  border: 2px solid rgb(140 140 140);
  font-family: sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
}

Resultaat

Resultaat in de browser

Kolom- en rij-overspanning

Dit voorbeeld breidt de basistabel uit het vorige voorbeeld uit met een extra "ABC"-cel.

HTML

Er wordt een extra datacel (<td>-element) geïntroduceerd binnen de eerste rij (<tr>-element). Dit creëert een vierde kolom in de tabel.

Met het rowspan-attribuut overspant de "ABC"-cel de eerste drie rijen van de tabel. De laatste datacellen van de volgende rijen overspannen elk twee kolommen. Dit wordt gedaan met het colspan-attribuut, waardoor ze correct binnen de tabelstructuur worden uitgelijnd. Merk op dat er een extra rij (<tr>-element) aan de tabel is toegevoegd om dit te illustreren.

HTML
<table>
  <tr>
    <th scope="row">A</th>
    <td>Alfa</td>
    <td>AL fah</td>
    <td rowspan="3">ABC</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 colspan="2">DELL tah</td>
  </tr>
  <tr>
    <th scope="row">E</th>
    <td>Echo</td>
    <td colspan="2">ECK oh</td>
  </tr>
</table>

CSS

De pseudo-klassen :first-of-type en :last-of-type worden in de CSS gebruikt om de toegevoegde "ABC"-datacel te selecteren en te stylen.

CSS
tr:first-of-type td:last-of-type {
  width: 60px;
  background-color: #505050;
  color: white;
  font-weight: bold;
  text-align: center;
}

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

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

tr th[scope="row"] {
  background-color: #d6ecd4;
}
CSS
table {
  border-collapse: collapse;
  border: 2px solid rgb(140 140 140);
  font-family: sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
}

Resultaat

Resultaat in de browser

Datacellen koppelen aan kopcellen

Voor complexere relaties tussen datacellen (<td>-elementen) en kopcellen (<th>-elementen) kan het gebruik van <th>-elementen met alleen het scope-attribuut onvoldoende zijn voor ondersteunende technologieën, met name schermlezers.

HTML

Om de toegankelijkheid van het vorige voorbeeld te verbeteren en om bijvoorbeeld schermlezers de koppen te laten uitspreken die bij elke datacel horen, kan het headers-attribuut worden geïntroduceerd samen met id-attributen. Elke rijkopcel (<th>-element) die bij de "ABC"-datacel hoort, dat wil zeggen de letters "A", "B" en "C", krijgt een unieke identificatie met het id-attribuut. De "ABC"-datacel (<td>-element) gebruikt vervolgens deze id-waarden in een door spaties gescheiden lijst voor het headers-attribuut.

Opmerking

Het wordt aanbevolen om meer beschrijvende en nuttige waarden voor het id-attribuut te gebruiken. Elke id in een document moet uniek zijn voor dat document. In dit voorbeeld zijn de id-waarden enkele tekens om de focus op het concept van het headers-attribuut te houden.

HTML
<table>
  <tr>
    <th id="a" scope="row">A</th>
    <td>Alfa</td>
    <td>AL fah</td>
    <td headers="a b c" rowspan="3">ABC</td>
  </tr>
  <tr>
    <th id="b" scope="row">B</th>
    <td>Bravo</td>
    <td>BRAH voh</td>
  </tr>
  <tr>
    <th id="c" scope="row">C</th>
    <td>Charlie</td>
    <td>CHAR lee</td>
  </tr>
  <tr>
    <th scope="row">D</th>
    <td>Delta</td>
    <td colspan="2">DELL tah</td>
  </tr>
  <tr>
    <th scope="row">E</th>
    <td>Echo</td>
    <td colspan="2">ECK oh</td>
  </tr>
</table>

Resultaat

Hoewel het visuele resultaat ongewijzigd is ten opzichte van de vorige voorbeeldtabel, is elke datacel (<td>) nu expliciet gekoppeld aan de bijbehorende rijkopcel (<th>).

Technische samenvatting

Inhoudscategorieën Sectioning root.
Toegestane inhoud Flow content.
Weglaten van tags De begintag is verplicht.
De eindtag kan worden weggelaten als deze direct wordt gevolgd door een <th>- of <td>-element, of als er geen data meer is in het bovenliggende element.
Toegestane ouders Een <tr>-element.
Impliciete ARIA-rol cell als afstammeling van een <table>-element, of gridcell als afstammeling van een element met de rol grid
Toegestane ARIA-rollen Alle
DOM-interface HTMLTableCellElement

Zie ook

Verwante elementen