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

Het element <col>

Het <col>-HTML-element definieert een of meer kolommen in een kolomgroep die wordt vertegenwoordigd door het bovenliggende <colgroup>-element. Het <col>-element is alleen geldig als kind van een <colgroup>-element dat geen span-attribuut heeft gedefinieerd.

Code
<table>
  <caption>
    Superheros and sidekicks
  </caption>
  <colgroup>
    <col />
    <col span="2" class="batman" />
    <col span="2" class="flash" />
  </colgroup>
  <thead>
    <tr>
      <td></td>
      <th scope="col">Batman</th>
      <th scope="col">Robin</th>
      <th scope="col">The Flash</th>
      <th scope="col">Kid Flash</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Skill</th>
      <td>Smarts, strong</td>
      <td>Dex, acrobat</td>
      <td>Super speed</td>
      <td>Super speed</td>
    </tr>
  </tbody>
</table>
Resultaat in de browser

Attributen

Dit element bevat de globale attributen.

spanSpecificeert het aantal opeenvolgende kolommen dat het <col>-element overspant. De waarde moet een positief geheel getal groter dan nul zijn. Indien niet aanwezig, is de standaardwaarde 1.

Verouderde attributen

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

align Verouderd

Specificeert de horizontale uitlijning van elke kolomcel. De mogelijke opgesomde 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 op de offset die is gedefinieerd door het charoff-attribuut. Merk op dat dit attribuut de opgegeven align van zijn bovenliggende <colgroup>-element overschrijft. Gebruik in plaats daarvan de CSS-eigenschap text-align op de <td>- en <th>-elementen, aangezien dit attribuut verouderd is.

Opmerking

Het instellen van text-align op het <col>-element heeft geen effect, omdat <col> geen afstammelingen heeft en er dus geen elementen van erven.

Als de tabel geen colspan-attribuut gebruikt, gebruik dan de CSS-selector td:nth-of-type(an+b). Stel a in op nul en b op de positie van de kolom in de tabel, bijvoorbeeld td:nth-of-type(2) { text-align: right; } om de cellen van de tweede kolom rechts uit te lijnen.

Als de tabel wel een colspan-attribuut gebruikt, kan het effect worden bereikt door geschikte CSS-attribuutselectors te combineren zoals [colspan=n], hoewel dit niet triviaal is.

bgcolor Verouderd

Definieert de achtergrondkleur van elke kolomcel. De waarde is een HTML-kleur; ofwel een zescijferige 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 elke kolomcel 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, hoewel het nog steeds de opgegeven char van zijn bovenliggende <colgroup>-element overschrijft.

charoff Verouderd

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

valign Verouderd

Specificeert de verticale uitlijning van elke kolomcel. De mogelijke opgesomde waarden zijn baseline, bottom, middle en top. Merk op dat dit attribuut de opgegeven valign van zijn bovenliggende <colgroup>-element overschrijft. Gebruik in plaats daarvan de CSS-eigenschap vertical-align op de <td>- en <th>-elementen, aangezien dit attribuut verouderd is.

Opmerking

Het instellen van vertical-align op het <col>-element heeft geen effect, omdat <col> geen afstammelingen heeft en er dus geen elementen van erven.

Als de tabel geen colspan-attribuut gebruikt, gebruik dan de CSS-selector td:nth-of-type(an+b). Stel a in op nul en b op de positie van de kolom in de tabel, bijvoorbeeld td:nth-of-type(2) { vertical-align: middle; } om de cellen van de tweede kolom verticaal te centreren.

Als de tabel wel een colspan-attribuut gebruikt, kan het effect worden bereikt door geschikte CSS-attribuutselectors te combineren zoals [colspan=n], hoewel dit niet triviaal is.

width Verouderd

Specificeert een standaardbreedte voor elke kolom. Naast de standaard pixel- en percentagewaarden, kan dit attribuut de speciale vorm 0* aannemen, wat betekent dat de breedte van elke overspannen kolom de minimale breedte moet zijn die nodig is om de inhoud van de kolom te bevatten. Relatieve breedtes zoals 5* kunnen ook worden gebruikt. Merk op dat dit attribuut de opgegeven width van zijn bovenliggende <colgroup>-element overschrijft. Gebruik in plaats daarvan de CSS-eigenschap width, aangezien dit attribuut verouderd is.

Gebruiksopmerkingen

  • Het <col>-element wordt gebruikt binnen een <colgroup>-element dat geen span-attribuut heeft.
  • De <col>-elementen groeperen kolommen niet structureel bij elkaar. Dat is de rol van het <colgroup>-element.
  • Slechts een beperkt aantal CSS-eigenschappen heeft invloed op <col>:
    • background: De verschillende background-eigenschappen stellen de achtergrond in voor cellen binnen de kolom. Aangezien de achtergrondkleur van de kolom wordt getekend boven op de tabel en kolomgroepen (<colgroup>), maar achter de achtergrondkleuren die zijn toegepast op de rijgroepen (<thead>, <tbody> en <tfoot>), de rijen (<tr>) en de individuele cellen (<th> en <td>), zijn achtergronden die op tabelkolommen worden toegepast alleen zichtbaar als elke laag die erboven wordt getekend een transparante achtergrond heeft.
    • border: De verschillende border-eigenschappen gelden, maar alleen als de <table> border-collapse: collapse heeft ingesteld.
    • visibility: De waarde collapse voor een kolom zorgt ervoor dat alle cellen van die kolom niet worden weergegeven, en cellen die zich uitstrekken naar andere kolommen worden bijgesneden. De ruimte die deze kolommen zouden hebben ingenomen, wordt verwijderd. De grootte van andere kolommen wordt echter nog steeds berekend alsof de cellen in de samengevouwen kolom(men) aanwezig zijn. Andere waarden voor visibility hebben geen effect.
    • width: De eigenschap width definieert een minimale breedte voor de kolom, alsof min-width was ingesteld.

Voorbeeld

Zie <table> voor een compleet tabelvoorbeeld met een introductie tot algemene standaarden en beste praktijken.

Dit voorbeeld toont een tabel met acht kolommen, verdeeld over drie <col>-elementen.

HTML

Een <colgroup>-element geeft structuur aan een eenvoudige tabel, waardoor één impliciete kolomgroep wordt gecreëerd. Er zijn drie <col>-elementen opgenomen binnen de <colgroup>, waardoor drie stileerbare kolommen ontstaan. Het span-attribuut specificeert het aantal tabelkolommen dat elk <col> moet overspannen (standaard 1 indien weggelaten), waardoor attributen kunnen worden gedeeld tussen de kolommen in elk <col>.

HTML
<table>
  <caption>
    Personal weekly activities
  </caption>
  <colgroup>
    <col />
    <col span="5" class="weekdays" />
    <col span="2" class="weekend" />
  </colgroup>
  <thead>
    <tr>
      <th>Period</th>
      <th>Mon</th>
      <th>Tue</th>
      <th>Wed</th>
      <th>Thu</th>
      <th>Fri</th>
      <th>Sat</th>
      <th>Sun</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>a.m.</th>
      <td>Clean room</td>
      <td>Football training</td>
      <td>Dance Course</td>
      <td>History Class</td>
      <td>Buy drinks</td>
      <td>Study hour</td>
      <td>Free time</td>
    </tr>
    <tr>
      <th>p.m.</th>
      <td>Yoga</td>
      <td>Chess Club</td>
      <td>Meet friends</td>
      <td>Gymnastics</td>
      <td>Birthday party</td>
      <td>Fishing trip</td>
      <td>Free time</td>
    </tr>
  </tbody>
</table>

CSS

We gebruiken CSS, in plaats van verouderde HTML-attributen, om de kolommen een achtergrondkleur te geven en de celinhoud uit te lijnen:

CSS
table {
  border-collapse: collapse;
  border: 2px solid rgb(140 140 140);
}

caption {
  caption-side: bottom;
  padding: 10px;
}

th,
td {
  border: 1px solid rgb(160 160 160);
  padding: 8px 6px;
  text-align: center;
}

.weekdays {
  background-color: #d7d9f2;
}

.weekend {
  background-color: #ffe8d4;
}
CSS
table {
  font-family: sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
}

Resultaat

Resultaat in de browser

Technische samenvatting

Content categories Geen.
Toegestane inhoud Geen; het is een leeg element.
Weglaten van tags Moet een begintag hebben en mag geen eindtag hebben.
Toegestane ouders Alleen <colgroup>, hoewel deze impliciet gedefinieerd kan worden, aangezien de begintag ervan niet verplicht is. De <colgroup> mag geen span-attribuut hebben.
Impliciete ARIA-rol Geen bijbehorende rol
Toegestane ARIA-rollen Geen role toegestaan
DOM-interface HTMLTableColElement

Zie ook

Verwante elementen