Farben und Einheiten
Hellgrauer Text in #bbbbbb auf Weiß hat ein Kontrastverhältnis von 1.92 zu 1. Die WCAG verlangen für normalen Text mindestens 4.5 zu 1.
Wie man eine Farbe schreibt
CSS akzeptiert Farben in mehreren Schreibweisen, und alle laufen auf dasselbe hinaus: Anteile von rotem, grünem und blauem Licht auf dem Bildschirm. Farbnamen wie red, navy oder rebeccapurple sind gut lesbar, aber begrenzt. Die Hex-Schreibweise gibt Rot, Grün und Blau mit je zwei Hexadezimalziffern an, von 00 bis ff (0 bis 255): #1a5fb4 ist 26 Rot, 95 Grün und 180 Blau, ein mittleres Blau. rgb(26 95 180) sagt dasselbe im Dezimalsystem. hsl(210 80% 40%) beschreibt eine Farbe über Farbton (einen Winkel auf dem Farbkreis, wobei 0 Rot ist, 120 Grün und 240 Blau), Sättigung und Helligkeit. So bekommt man leicht einen helleren oder dunkleren Ton derselben Farbe, indem man eine einzige Zahl ändert.
color: navy; color: #1a5fb4; /* same as #1A5FB4 */ color: #36c; /* short form of #3366cc */ color: rgb(26 95 180); color: rgb(26 95 180 / 50%); /* half transparent */ color: hsl(210 80% 40%); background-color: transparent;
Ein vierter Wert nach einem Schrägstrich setzt den Alphakanal: rgb(0 0 0 / 50%) ist Schwarz mit halber Deckkraft, sodass durchscheint, was dahinter liegt. color setzt die Textfarbe, background-color die Füllung hinter einem Element und border-color seinen Rahmen. Das Schlüsselwort currentColor steht für die Textfarbe des Elements. Das ist praktisch für Icons und Rahmen, die zum Text passen sollen.
Kontrast ist keine Kür
Text, dessen Helligkeit zu nah an der des Hintergrunds liegt, ist für viele Menschen schwer lesbar: für Menschen mit Sehbehinderung, für ältere Leserinnen und Leser und für alle, die ihr Handy in der Sonne lesen. Die WCAG 2.2, die Barrierefreiheitsrichtlinien des W3C, messen das als Kontrastverhältnis von 1 zu 1 (kein Unterschied) bis 21 zu 1 (Schwarz auf Weiß). Erfolgskriterium 1.4.3 verlangt mindestens 4.5 zu 1 für normalen Text und 3 zu 1 für großen Text, den die WCAG als mindestens 18 Punkt oder 14 Punkt fett definieren. Dunkelgrau #767676 auf Weiß besteht mit 4.54 zu 1 gerade so, #777777 fällt mit 4.48 knapp durch. Die Entwicklerwerkzeuge des Browsers zeigen das Verhältnis an, wenn du ein Textelement untersuchst. Raten musst du also nicht.
Farbe darf auch nie der einzige Weg sein, eine Information zu zeigen. Ein Formular, das Fehler nur durch einen roten Rahmen markiert, schließt alle aus, die Rot schlecht sehen. Füg zusätzlich eine Meldung oder ein Icon hinzu.
Absolute und relative Einheiten
Längen brauchen eine Einheit, außer bei null. px ist das CSS-Pixel, eine feste Einheit. Auf Bildschirmen mit hoher Pixeldichte deckt ein CSS-Pixel mehrere physische Pixel ab, so wirkt es fürs Auge ungefähr gleich groß. Relative Einheiten wachsen mit etwas anderem mit. em bezieht sich auf die eigene Schriftgröße des Elements, also sind padding: 0.5em bei 20 Pixel großem Text 10 Pixel. rem bezieht sich auf die Schriftgröße der Wurzel (html). Die beträgt im Browser 16 Pixel, solange die Leserin oder der Leser sie nicht geändert hat, also sind 1.25rem normalerweise 20 Pixel. % bezieht sich auf das Elternelement, meist auf dessen Breite. vw und vh sind Hundertstel der Breite und Höhe des Viewports, und ch ist ungefähr so breit wie die Ziffer Null in der aktuellen Schrift.
Was nimmt man wann? Schriftgrößen in rem respektieren die Leserschaft: Stellt jemand im Browser größere Schrift ein, wächst alles in rem mit, während Text mit fester px-Größe das vielleicht nicht tut. Innenabstand in em wächst mit dem Text, den er umgibt. Pixel passen für Dinge, die nicht mitwachsen sollen, etwa einen Rahmen von 1 Pixel.
| Hex-Farbe | #rrggbb, jedes Paar 00 bis ff |
| hsl() | Farbtonwinkel, Sättigung %, Helligkeit % |
| Alpha | Deckkraft, nach einem Schrägstrich: rgb(0 0 0 / 50%) |
| Kontrastverhältnis | 4.5:1 normaler Text, 3:1 großer Text (WCAG 1.4.3) |
| px | CSS-Pixel, fest |
| em | Relativ zur Schriftgröße des Elements |
| rem | Relativ zur Schriftgröße der Wurzel (standardmäßig 16px) |
| vw / vh | 1% der Breite / Höhe des Viewports |
- Wie viel Rot steckt in
#ff8000, auf einer Skala von 0 bis 255? - Wie viel Grün steckt in
#ff8000? - Welcher Farbtonwinkel ist in hsl() reines Grün?
- Welches Kontrastverhältnis verlangt WCAG 1.4.3 mindestens für normalen Text?
- 4.5 to 1
- 3 to 1
- 7 to 1
- Erfüllt #777777 auf Weiß die Anforderung von 4.5 zu 1?
- Nein, es sind 4.48 zu 1
- Ja, es sind 4.54 zu 1
- Ja, jedes Grau besteht
- Die Schriftgröße der Wurzel ist 16px. Wie viele Pixel sind 1.5rem?
- Ein Element hat font-size: 20px und padding: 0.5em. Wie viele Pixel Innenabstand sind das?
- Der Viewport ist 400px breit. Wie breit sind 50vw?
- Warum Schrift in rem statt in px?
- Sie folgt der Schriftgröße, die im Browser eingestellt ist
- Sie ist immer kleiner
- Sie lädt schneller
- Ein Formular markiert Fehler nur mit einem roten Rahmen. Was fehlt?
- Eine Meldung oder ein Icon, denn Farbe allein reicht nicht
- Ein dunkleres Rot
- Nichts
- Farben als Name, Hex, rgb() und hsl(); ein Schrägstrich fügt Alpha hinzu.
- WCAG 1.4.3: 4.5:1 für normalen Text, 3:1 für großen Text; nie nur Farbe.
- px ist fest; em folgt der Schriftgröße des Elements; rem der Wurzel (standardmäßig 16px).
Quellen zu diesem Kurs (6)
- W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
- MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
- W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
- W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
- 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
- every code exercise checked with a Playwright probe against a reference solution.
Abgerufen: 2026-10-17