mitmario.dev

<col>

Das <col>-Element definiert eine einzelne Spalte (oder eine Spanne von Spalten) innerhalb einer <colgroup>. Es ist ein Void-Element, hat also keinen Inhalt und kein schließendes Tag. Über <col> kannst du CSS-Eigenschaften auf eine ganze Tabellenspalte anwenden, ohne jede Zelle einzeln zu formatieren. Das spart Wiederholungen und macht den Code übersichtlicher.

Steckbrief <col>
Kategorie
Tabellen
Art
Leeres Element
Attribute
1
Beispiele
3
Browser
5 von 5
E-Mail
2 von 5
Stand
04.02.2026

Grundlagen

<col> arbeitet immer zusammen mit <colgroup>. Während <colgroup> den Container bildet, repräsentiert jedes <col> eine (oder mehrere) Spalten innerhalb dieser Gruppe. Die Reihenfolge der <col>-Elemente entspricht der Reihenfolge der Spalten in der Tabelle.

  • <col> ist ein Void-Element: es hat kein schließendes Tag (<col />)
  • Es steht ausschließlich innerhalb von <colgroup>
  • Jedes <col> repräsentiert eine Spalte oder (mit span) mehrere aufeinanderfolgende Spalten
  • CSS auf <col> ist begrenzt: Nur background, border, width und visibility funktionieren zuverlässig
  • Die Reihenfolge der <col>-Elemente bestimmt, welche Tabellenspalte sie ansprechen
  • Ein <col> ohne Styling dient als Platzhalter, um die richtige Spalte zu adressieren

Syntax

index.html
Grundsyntax
<table>
  <colgroup>
    <col style="width: 40%;" />
    <col style="width: 30%;" />
    <col style="width: 30%; background: #f0fdf4;" />
  </colgroup>
  <thead>
    <tr>
      <th scope="col">Name</th>
      <th scope="col">Rolle</th>
      <th scope="col">Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Anna</td>
      <td>Entwicklerin</td>
      <td>Aktiv</td>
    </tr>
    <tr>
      <td>Ben</td>
      <td>Designer</td>
      <td>Aktiv</td>
    </tr>
  </tbody>
</table>

Attribute

1 Attribut
Attribut und Beispiel Beschreibung
span Number
span="2"
Gibt an, über wie viele aufeinanderfolgende Spalten sich das col-Element erstreckt. Standard ist 1.

Beispiele

3 Beispiele

Ein häufiger Anwendungsfall: Eine bestimmte Spalte farblich hervorheben, um die Aufmerksamkeit darauf zu lenken. Hier wird die Preis-Spalte grün hinterlegt.

index.html
Spalte hervorheben
<table>
  <colgroup>
    <col />
    <col />
    <col style="background-color: #dcfce7;" />
  </colgroup>
  <thead>
    <tr>
      <th scope="col">Paket</th>
      <th scope="col">Features</th>
      <th scope="col">Preis/Monat</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Starter</td>
      <td>5 Projekte</td>
      <td>9 €</td>
    </tr>
    <tr>
      <td>Pro</td>
      <td>Unbegrenzt</td>
      <td>29 €</td>
    </tr>
    <tr>
      <td>Enterprise</td>
      <td>Unbegrenzt + SSO</td>
      <td>99 €</td>
    </tr>
  </tbody>
</table>

Barrierefreiheit

<col> hat keine direkte Auswirkung auf die Barrierefreiheit. Screenreader ignorieren es, weil es ein reines Styling-Element ist. Die Barrierefreiheit einer Tabelle hängt von <th>, scope, <thead> und <caption> ab, nicht von Spaltenformatierungen.

Häufige Fehler

4 Fehler
01 <col> ohne explizites <colgroup>
<col> gehört in ein <colgroup>-Element. Wenn du ein <col> direkt in <table> schreibst, erzeugt der HTML-Parser automatisch ein implizites <colgroup>. Das ist also technisch valide. Trotzdem ist ein explizites <colgroup> die bessere Praxis, weil es den Code verständlicher macht.
02 Nicht unterstützte CSS-Eigenschaften
color, font-size, text-align, padding und die meisten anderen CSS-Eigenschaften funktionieren auf <col> nicht. Nur background, border, width und visibility werden unterstützt. Für alles andere musst du die <td>/<th>-Zellen direkt ansprechen.
03 Schließendes Tag verwenden
<col> ist ein Void-Element und hat kein schließendes Tag. <col></col> ist falsch. Verwende <col> oder <col />.
04 Falsche Spaltenanzahl
Wenn du weniger <col>-Elemente definierst als die Tabelle Spalten hat, bleiben die restlichen Spalten ungestylt. Das ist valides HTML, kann aber zu unerwartetem Aussehen führen, wenn du erwartest, dass alle Spalten erfasst sind.

Browser-Kompatibilität

5 von 5

Das col-Element wird von allen modernen Browsern vollständig unterstützt. Die eingeschränkte CSS-Unterstützung ist spezifikationsbedingt und kein Browser-Bug.

  • Chrome

    Komplett

  • Firefox

    Komplett

  • Safari

    Komplett

  • Edge

    Komplett

  • Opera

    Komplett

Email-Kompatibilität

2 von 5

Die Unterstützung von col in Email-Clients ist eingeschränkt. Viele Clients entfernen col-Elemente beim Rendern. Spalten-Styling sollte in E-Mails direkt auf die Zellen gesetzt werden.

  • Apple Mail

    Komplett

  • Gmail

    Keine

    Gmail entfernt col-Elemente komplett. Verwende inline width und background direkt auf td-Zellen.

  • Outlook

    Teilweise

    Outlook unterstützt col teilweise, aber width wird oft ignoriert. Inline-Styling auf Zellen ist zuverlässiger.

  • Thunderbird

    Komplett

  • Yahoo Mail

    Keine

    Yahoo Mail entfernt col-Elemente. Spalten-Styling muss auf die Zellen direkt angewendet werden.

Newsletter

einmal die Woche, kostenlos

Neue Artikel und Videos, was sich auf der Lernplattform tut, und ab und zu ein Sonderpreis zum Kursstart. Kurz genug, dass du es auch liest.

Zuletzt verschickt · KW 40

Einmal alles neu, und die Lernplattform ist da

Danach kommt eine Mail mit Bestätigungslink, erst dann bist du eingetragen. Abmelden geht unten in jeder Ausgabe. Mehr dazu in der Datenschutzerklärung.