

Tabellen sind ein zentrales Werkzeug, um strukturierte Daten wie Statistiken, Produktlisten oder
Finanzinformationen übersichtlich darzustellen. Ohne CSS wirken HTML-Tabellen jedoch technisch,
karg und schwer lesbar. Moderne CSS-Eigenschaften machen Tabellen klar, harmonisch und
professionell – und vor allem: sie ermöglichen eine wirklich responsiv nutzbare Darstellung
auf allen Geräten.
In diesem Kapitel lernst du, wie du klassische Tabellen stylst, wie du Abstände, Rahmen, Layouts
und Lesbarkeit optimierst und wie moderne Webdesigns Tabellen auf Smartphones darstellen.
Ziel ist eine Tabelle, die sowohl funktional als auch optisch auf dem aktuellen Stand von 2025 ist.
Mit der border-Eigenschaft definieren wir sichtbare Linien rund um Tabellen und
Tabellenzellen. Das folgende Beispiel zeigt eine einfache, aber klare Formatierung:
table, th, td {
border: 1px solid #000;
}
Standardmäßig werden Zellenränder getrennt voneinander angezeigt.
border-collapse: collapse; führt alle Rahmen zu einer sauberen Linie zusammen:
table {
border-collapse: collapse;
}
Tabellen ohne Innenabstand sehen gequetscht und schlecht lesbar aus.
padding schafft Klarheit und Raum:
th, td {
padding: 15px;
}
Möchtest du die Abstände zwischen den einzelnen Zellen kontrollieren, kannst du bei
border-collapse: separate; zusätzlich border-spacing verwenden:
table {
border-spacing: 10px;
}
Standardmäßig passen sich Tabellen an ihren Inhalt an. CSS erlaubt jedoch auch feste Breiten oder
Höhen – beispielsweise, um Layouts zu stabilisieren oder Spalten bewusst zu begrenzen.
table {
width: 80%;
}
th {
height: 30px;
}
Der table-layout-Algorithmus steuert, wie Browser Tabellen berechnen. Zwei Varianten:
fixed ist deutlich schneller und verhindert Layoutsprünge – ideal für große Tabellen.
table {
width: 300px;
table-layout: fixed;
}
table-layout: fixed; Zeile für Zeile und werden dadurch
th { text-align: left; }
td {
vertical-align: middle;
}
Tabellenüberschriften (<caption>) lassen sich per CSS nach oben oder unten setzen:
table {
caption-side: bottom;
}
Die horizontale Ausrichtung steuerst du wie gewohnt mit text-align.
Wenn border-collapse: separate; genutzt wird, können leere Zellen ausgeblendet werden:
td {
empty-cells: hide;
}
Hinweis: Eine Zelle gilt nicht als leer, wenn sie ein enthält.
Alternierende Zeilenfarben erhöhen deutlich die Lesbarkeit langer Tabellen – auch „Zebra-Streifen“ genannt.
tbody tr:nth-child(odd) {
background-color: #f3f3f3;
}
Mit Tailwind ist das sogar noch einfacher:
| Zeile 1 |
| Zeile 2 |
| Zeile 3 |
Tabellen sind von Natur aus nicht responsiv. Moderne Websites verwenden daher mehrere Techniken,
um Tabellen auf kleinen Bildschirmen lesbar zu machen. Es gibt heute 3 etablierte Strategien:
| Name | Status | |
|---|---|---|
| Max | max@example.com | aktiv |
Viele Webdesigns wandeln Tabellen auf Smartphones in Karten um, da diese viel besser lesbar sind.
Das geschieht über Media Queries:
@media (max-width: 640px) {
table { display: none; }
.table-card { display: block; }
}
Viele moderne Dashboards nutzen keine Tabellen mehr, sondern CSS Grid – da
Spalten einfacher reorganisiert und Daten dynamischer dargestellt werden können.
.grid-table {
display: grid;
grid-template-columns: 2fr 3fr 1fr;
border: 1px solid #ccc;
}
.grid-table > div {
padding: 12px;
border-bottom: 1px solid #eee;
}
border-collapse: collapse; für klare & moderne Tabellen.overflow-x-auto-Element.