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

Het element <th>

Het <th>-HTML-element definieert een cel als de kop van een groep tabelcellen en kan worden gebruikt als kind van het <tr>-element. De exacte aard van deze groep wordt bepaald door de attributen scope en headers.

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.

abbrEen korte, verkorte beschrijving van de inhoud van de kopcel, bedoeld als alternatief label voor de kopcel wanneer naar de cel wordt verwezen in andere contexten. Sommige user-agents, zoals schermlezers, kunnen deze beschrijving vóór de eigenlijke inhoud tonen.
colspanEen niet-negatief geheel getal dat aangeeft over hoeveel kolommen de kopcel zich uitstrekt. De standaardwaarde is 1. Waarden hoger dan 1000 worden afgekapt naar 1000.
headersEen door spaties gescheiden lijst van strings die overeenkomen met de id-attributen van de <th>-elementen die de koppen voor deze kopcel leveren.
rowspanEen niet-negatief geheel getal dat aangeeft over hoeveel rijen de kopcel zich uitstrekt. De standaardwaarde is 1; als de waarde is ingesteld op 0, strekt de kopcel zich uit tot het einde van de tabelgroeperingssectie (<thead>, <tbody>, <tfoot>, ook indien impliciet gedefinieerd) waartoe de <th> behoort. Waarden hoger dan 65534 worden afgekapt op 65534.
scope

Definieert de cellen waarop de kop (gedefinieerd in de <th>) betrekking heeft. Mogelijke opgesomde waarden zijn:

  • row: de kop heeft betrekking op alle cellen van de rij waartoe deze behoort;
  • col: de kop heeft betrekking op alle cellen van de kolom waartoe deze behoort;
  • rowgroup: de kop behoort tot een rijgroep en heeft betrekking op alle cellen daarvan;
  • colgroup: de kop behoort tot een kolomgroep en heeft betrekking op alle cellen daarvan.

Als het scope-attribuut niet is opgegeven, of de waarde ervan is niet row, col, rowgroup, of colgroup, dan selecteren browsers automatisch de set cellen waarop de kopcel van toepassing is.

Verouderde attributen

De volgende attributen zijn verouderd en mogen niet worden gebruikt. Ze worden hieronder gedocumenteerd als naslag bij het bijwerken van bestaande code en alleen vanwege historisch belang.

align Verouderd

Specificeert de horizontale uitlijning van de kopcel. 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 en de verschuiving die is gedefinieerd door het charoff-attribuut. Gebruik in plaats daarvan de CSS-eigenschap text-align, aangezien dit attribuut verouderd is.

axis Verouderd

Bevat een lijst van door spaties gescheiden strings, elk overeenkomend met het id-attribuut van een groep cellen waarop de kopcel van toepassing is. Gebruik in plaats daarvan het scope-attribuut, aangezien dit attribuut verouderd is.

bgcolor Verouderd

Definieert de achtergrondkleur van de kopcel. De waarde is een HTML-kleur; ofwel een 6-cijferige hexadecimale RGB-code, voorafgegaan door een #, of 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. Was oorspronkelijk bedoeld om de uitlijning van de inhoud op een teken van de kopcel 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. Was oorspronkelijk bedoeld om het aantal tekens op te geven waarmee de inhoud van de kopcel wordt verschoven ten opzichte van het uitlijningsteken dat is opgegeven door het char-attribuut.

height Verouderd

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

valign Verouderd

Specificeert de verticale uitlijning van de kopcel. 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 kopcel. Gebruik in plaats daarvan de CSS-eigenschap width, aangezien dit attribuut verouderd is.

Gebruiksnotities

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

  • In eenvoudige contexten is het gebruik van het scope-attribuut op kopcellen (<th>-elementen) overbodig, omdat scope wordt afgeleid. Sommige ondersteunende technologieën kunnen echter de scope niet correct afleiden, dus het specificeren van de scope van de kop kan de gebruikerservaring verbeteren.

  • Wanneer de attributen colspan en rowspan worden gebruikt om kopcellen over meerdere kolommen en rijen te laten overspannen, worden cellen zonder deze gedefinieerde attributen (met een standaardwaarde van 1) automatisch geplaatst in vrije beschikbare ruimtes in de tabelstructuur die 1x1-cellen beslaan, zoals geïllustreerd in de volgende afbeelding:

    Illustration demonstrating column and row spanning of table cells: cells 1, 3, and 4 spanning two rows; cell 2 spanning two columns; cells 5 and 6 fitting into the available cells that are the second and third columns in the second row

    Opmerking

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

Voorbeelden

Zie <table> voor een compleet tabelvoorbeeld met een introductie van veelgebruikte standaarden en best practices.

Eenvoudige kolom- en rijkoppen

Dit voorbeeld gebruikt <th>-elementen om kolom- en rijkoppen te introduceren in een eenvoudige tabelstructuur.

HTML

De eerste rij (<tr>-element) bevat de kolomkoppen (<th>-elementen), die dienen als "titels" voor de kolommen om de informatie in de kolommen beter te begrijpen en de gegevens te identificeren. Om aan te geven dat elke kolomkop betrekking heeft op alle cellen in de bijbehorende kolom, is het scope-attribuut ingesteld op col (kolom).

De overige rijen bevatten de belangrijkste gegevens van de tabel. Elk van deze rijen heeft een rijkop (<th>-element) die als eerste cel wordt geïntroduceerd. Dit creëert een kolom met rijkoppen als eerste kolom van de tabel. Net als bij de kolomkoppen is het scope-attribuut ingesteld op row om aan te geven op welke cellen elke rijkop betrekking heeft, wat in het onderstaande voorbeeld alle gegevenscellen (<td>-elementen) in elke row zijn.

Opmerking

Normaal gesproken worden de groeperingselementen <thead> en <tbody> gebruikt om rijen met koppen te groeperen in de respectievelijke tabelkop- en -bodysecties. Deze elementen zijn in dit voorbeeld weggelaten om de complexiteit te verminderen en de focus te leggen op het gebruik van kopcellen.

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

Er wordt wat basis-CSS gebruikt om de tabel en de bijbehorende cellen op te maken. We gebruiken CSS-attribuutselectors om kopcellen te targeten op basis van hun scope-attribuutwaarden, waarbij kolom- en rijkoppen (<th>-elementen) worden gemarkeerd en van elkaar en van de gegevenscellen (<td>) worden onderscheiden.

CSS
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;
}

tr:nth-of-type(odd) td {
  background-color: #eeeeee;
}
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

Kolommen en rijen laten overspannen

Dit voorbeeld breidt de eenvoudige tabel uit het vorige voorbeeld uit en verbetert deze door een tweede rij toe te voegen voor extra kolomkoppen.

HTML

Een extra tabelrij (<tr>-element) wordt toegevoegd als de tweede koprij van de tabel met twee extra kolomkoppen (<th>-elementen). Op deze manier wordt de kolom "Pronunciation" opgesplitst in twee kolommen, één voor de IPA-notatie (International Phonetic Alphabet) en één voor de herspelling (de oorspronkelijke uitspraakkolom). De bijbehorende gegevenscellen (<td>-elementen) worden aan elke volgende rij toegevoegd.

Zoals getoond in de gebruiksnotities, kunnen de attributen colspan en rowspan worden gebruikt voor de <th>-elementen om de kopcellen aan de juiste kolommen en rijen toe te wijzen. Om een koptekst van "twee rijen" in de tabelstructuur te bereiken, overspannen de eerste twee kopcellen binnen het eerste <tr>-element twee rijen. De derde kopcel overspant twee kolommen breed (en blijft in de eerste rij). Deze opzet laat twee beschikbare gebieden over in de derde en vierde kolom van de tweede rij, waar de twee koppen binnen het tweede <tr>-element automatisch worden geplaatst, waarbij de standaardwaarde 1 is voor de attributen colspan en rowspan.

Opmerking

Normaal gesproken worden de elementen <thead> en <tbody> gebruikt om rijen met koppen te groeperen in de respectievelijke tabelkop- en -bodysecties. Dit is in dit voorbeeld niet geïmplementeerd om de focus te leggen op de koppen en het overspannen, en om de complexiteit van het voorbeeld te verminderen.

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

De CSS is ongewijzigd ten opzichte van het vorige voorbeeld.

CSS
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;
}

th[scope="col"] {
  background-color: #505050;
  color: white;
}

th[scope="row"] {
  background-color: #d6ecd4;
}

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

Resultaat

Resultaat in de browser

Kopcellen associëren met andere kopcellen

Voor complexere relaties tussen kopcellen is het gebruik van th-elementen met alleen het scope-attribuut mogelijk niet voldoende voor ondersteunende technologieën, met name schermlezers.

HTML

Om de toegankelijkheid van het vorige voorbeeld te verbeteren en bijvoorbeeld schermlezers in staat te stellen de koppen die bij elke kopcel horen uit te spreken, kan het headers-attribuut worden geïntroduceerd samen met id-attributen. Doordat de kolom "Pronunciation" in het voorbeeld in twee kolommen wordt opgesplitst, waarbij een koptekst van "twee rijen" wordt geïntroduceerd, kunnen ondersteunende technologieën zoals schermlezers mogelijk niet identificeren met welke extra kopcellen (th-elementen) de kopcel "Pronunciation" gerelateerd is, en omgekeerd. Daarom wordt het headers-attribuut gebruikt op de kopcellen "Pronunciation", "IPA" en "Respelling" om de gerelateerde kopcellen te associëren op basis van de waarden van de unieke identifiers uit de toegevoegde id-attributen, in de vorm van een door spaties gescheiden lijst.

Opmerking

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

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>

Resultaat

Het visuele resultaat is ongewijzigd ten opzichte van de vorige voorbeeldtabel.

Technische samenvatting

Inhoudscategorieën Geen.
Toegestane inhoud Flow content, maar zonder afstammelingen die header-, footer-, sectioning- of heading-inhoud zijn.
Weglaten van tags De begintag is verplicht.
De eindtag mag worden weggelaten als deze onmiddellijk wordt gevolgd door een <th>- of <td>-element, of als er geen gegevens meer zijn in het bovenliggende element.
Toegestane oudertags Een <tr>-element.
Impliciete ARIA-rol columnheader of rowheader
Toegestane ARIA-rollen Alle
DOM-interface HTMLTableCellElement

Zie ook

Verwante elementen