mitmario.dev

CSS-Grundlagen · 8 von 11

Einheiten & Werte

Du weißt jetzt, wie das Box-Modell funktioniert, und hast dabei schon Werte wie 20px oder 100% geschrieben. Aber warum gibt es so viele verschiedene Einheiten? Weil unterschiedliche Situationen unterschiedliche Maßstäbe brauchen. Ein fester Rahmen von 2 Pixeln ergibt Sinn, aber eine feste Seitenbreite von 1200 Pixeln ignoriert Smartphones komplett.

Steckbrief Grundlagen
Reihe
CSS-Grundlagen
Teil
8 von 11
Kapitel
9
Vorschauen
9
Lesezeit
7 Min
Stand
10.02.2026

Absolute Einheiten: Pixel

01 / 09

Von den absoluten CSS-Einheiten (cm, mm, in, pt, pc, px) ist in der Praxis nur eine relevant: px (Pixel). Die anderen stammen aus der Druckwelt und haben im Webdesign so gut wie keine Bedeutung.

Pixel sind absolut
.box {
  width: 200px;
  height: 100px;
  border: 2px solid #1a56db;
}

Ein CSS-Pixel ist nicht zwingend ein physischer Bildschirm-Pixel. Auf Retina-Displays entspricht 1 CSS-Pixel zum Beispiel 2 oder 3 physischen Pixeln. Aber das ist ein Detail, das CSS für dich abstrahiert. Pixel sind gut geeignet für feste Größen wie Border, Schatten oder Icons.

Relative Einheiten: em und rem

02 / 09

Relative Einheiten passen sich an ihren Kontext an. Die beiden wichtigsten sind em und rem.

em: relativ zum Eltern-Element

1em entspricht der font-size des Elements selbst. Wenn du em bei der font-size Eigenschaft verwendest, bezieht sich der Wert auf die font-size des Eltern-Elements.

em ist kontextabhängig
.parent {
  font-size: 20px;
}

.child {
  font-size: 1.5em;  /* 1.5 × 20px = 30px */
  padding: 0.5em;    /* 0.5 × 30px = 15px */
}

Wichtig: Sobald die font-size auf 1.5em gesetzt ist, berechnen sich alle anderen em-Werte innerhalb des Elements anhand der neuen Schriftgröße (30px), nicht anhand der Eltern-Schriftgröße (20px).

Das Verschachtelungs-Problem

em hat einen Nachteil: Die Werte potenzieren sich bei Verschachtelung.

Verschachtelung mit em
.nested {
  font-size: 1.5em;
}

/* Ebene 1: 1.5 × 16px = 24px */
/* Ebene 2: 1.5 × 24px = 36px */
/* Ebene 3: 1.5 × 36px = 54px */

Jede Verschachtelungsebene multipliziert die Schriftgröße mit 1.5. Das wird schnell unkontrollierbar.

rem: relativ zum Root-Element

rem löst genau dieses Problem. 1rem bezieht sich immer auf die font-size des <html>-Elements, egal wie tief verschachtelt.

rem bleibt konsistent
/* html hat standardmäßig font-size: 16px */

.level {
  font-size: 1.5rem;  /* Immer 24px */
}

/* Verschachtelung spielt keine Rolle */

Egal ob erstes, zweites oder drittes Level: 1.5rem ist immer 1.5 × 16px = 24px. Deshalb ist rem die sicherere Wahl für Schriftgrößen und Abstände in den meisten Projekten.

Prozent

03 / 09

Prozentwerte beziehen sich auf das Eltern-Element, aber je nach Eigenschaft auf eine andere Dimension:

  • width: 50%: 50% der Breite des Eltern-Elements
  • padding: 10%: 10% der Breite des Eltern-Elements (auch bei padding-top!)
  • font-size: 120%: 120% der Schriftgröße des Eltern-Elements
Prozent-Breiten
.container {
  width: 300px;
}

.half {
  width: 50%;   /* 150px */
}

.full {
  width: 100%;  /* 300px */
}

Prozent sind ideal für flexible Layouts, die sich an die Breite des Containers anpassen.

Viewport-Einheiten

04 / 09

Viewport-Einheiten beziehen sich auf die Größe des Browser-Fensters (den sichtbaren Bereich):

  • vw: 1% der Viewport-Breite
  • vh: 1% der Viewport-Höhe
Viewport-Einheiten
.full-width {
  width: 100vw;  /* Volle Viewport-Breite */
}

.half-height {
  height: 30vh;  /* 30% der Viewport-Höhe */
}

Viewport-Einheiten sind nützlich für Hero-Sektionen, die den ganzen Bildschirm einnehmen sollen, oder für responsive Schriftgrößen.

Neue Viewport-Einheiten

Auf mobilen Geräten verändert sich die sichtbare Höhe, wenn die Adressleiste ein- oder ausgeblendet wird. CSS bietet dafür drei Varianten:

EinheitBedeutungViewport-Höhe
svhSmall Viewport HeightKleinste mögliche Höhe (Adressleiste sichtbar)
lvhLarge Viewport HeightGrößte mögliche Höhe (Adressleiste ausgeblendet)
dvhDynamic Viewport HeightAktuelle Höhe (passt sich dynamisch an)

Für die meisten Fälle ist dvh die beste Wahl, weil es sich an die tatsächlich sichtbare Fläche anpasst. Die Breitenäquivalente svw, lvw und dvw existieren ebenfalls, sind aber weniger relevant, weil sich die Breite auf Mobilgeräten selten ändert.

Weitere Einheiten im Überblick

05 / 09

Es gibt noch mehr CSS-Einheiten, die in bestimmten Situationen nützlich sind:

EinheitBezugTypischer Einsatz
chBreite der Ziffer “0”Textbreiten begrenzen (max-width: 65ch)
exHöhe des Buchstabens “x”Typografische Feinheiten
lhZeilenhöhe (line-height)Abstände relativ zur Zeilenhöhe

Besonders ch ist in der Praxis beliebt. max-width: 65ch begrenzt eine Textzeile auf etwa 65 Zeichen, was die optimale Lesebreite für Fließtext ist.

Farbwerte

06 / 09

Farben sind in CSS allgegenwärtig. Du hast in den bisherigen Beispielen schon Hex-Werte wie #1a56db gesehen. CSS bietet mehrere Formate:

Hex-Notation

Hex-Farben
.farbe1 { color: #1a56db; }    /* 6 Ziffern: RRGGBB */
.farbe2 { color: #f00; }       /* 3 Ziffern: Kurzform */
.farbe3 { color: #1a56db80; }  /* 8 Ziffern: mit Alpha */

Hex-Werte sind das häufigste Format im Web. Die 3-Ziffern-Kurzform funktioniert, wenn jeweils beide Ziffern eines Kanals identisch sind: #ff0000 wird zu #f00.

rgb() und hsl()

rgb() und hsl()
/* RGB: Rot, Grün, Blau (0 bis 255) */
.box1 { background: rgb(26 86 219); }

/* RGB mit Alpha-Transparenz */
.box2 { background: rgb(26 86 219 / 0.3); }

/* HSL: Farbton (0 bis 360), Sättigung, Helligkeit */
.box3 { background: hsl(150 80% 40%); }

rgb() definiert Farben über Rot-, Grün- und Blau-Anteile (jeweils 0 bis 255). hsl() verwendet Farbton (Hue, 0 bis 360 Grad), Sättigung (Saturation) und Helligkeit (Lightness). hsl() ist intuitiver, wenn du Farbvarianten erzeugen willst: Du änderst nur die Helligkeit und behältst den Farbton bei.

Schlüsselwörter und spezielle Werte

CSS kennt über 140 benannte Farben wie red, blue, tomato oder cornflowerblue. Dazu kommen zwei besondere Werte:

  • transparent: Vollständig durchsichtig (gleichbedeutend mit rgb(0 0 0 / 0))
  • currentColor: Übernimmt den aktuellen color-Wert des Elements
currentColor
.element {
  color: #dc2626;
  border: 3px solid currentColor;
  /* Border ist automatisch auch rot */
}

currentColor ist nützlich, wenn Border, Schatten oder Icons automatisch die Textfarbe annehmen sollen. Änderst du die color, passt sich alles an.

Welche Einheit wann?

07 / 09
EinsatzzweckEmpfohlene EinheitWarum
SchriftgrößenremKonsistent, keine Verschachtelungsprobleme
Abstände (Padding, Margin)rem oder pxrem für konsistente Skalierung, px für kleine feste Werte
Breiten%, vwFlexibel, passt sich dem Container/Viewport an
Max-Breite für TextchOptimale Lesebreite (max-width: 65ch)
Border, SchattenpxFeste, kleine Werte
Höhe (Hero-Sektionen)vh, dvhBezug zum Viewport
FarbenHex oder hsl()Hex ist Standard, hsl() für Farbsysteme

Häufige Fehler

08 / 09
01 em für Schriftgrößen in verschachtelten Elementen
Die Werte multiplizieren sich mit jeder Ebene. Verwende rem statt em für Schriftgrößen.
02 100vh auf Mobilgeräten
Die Adressleiste wird nicht einberechnet, dadurch ragt der Inhalt über den sichtbaren Bereich hinaus. Verwende 100dvh statt 100vh.
03 Einheit bei 0 angeben
margin: 0px funktioniert, aber margin: 0 reicht aus. Null ist in jeder Einheit gleich. Die Einheit wegzulassen ist sauberer.
04 Prozent-Padding missverstehen
padding-top: 10% bezieht sich auf die Breite des Eltern-Elements, nicht auf die Höhe. Das ist kein Fehler, sondern CSS-Spezifikation, aber es überrascht Anfänger.
05 Nur Pixel verwenden
Ein Layout komplett in Pixeln ist nicht flexibel. Kombiniere verschiedene Einheiten je nach Kontext.

Zusammenfassung

09 / 09
EinheitBezugTypischer Einsatz
pxAbsolutBorder, Schatten, kleine feste Werte
emEigene/Eltern-SchriftgrößeKomponenten-internes Spacing
remRoot-Schriftgröße (16px)Schriftgrößen, Abstände
%Eltern-ElementFlexible Breiten
vw / vhViewport-Breite/-HöheFullscreen-Layouts, responsive Typo
dvhDynamische Viewport-HöheMobile-optimierte Höhen
chBreite der “0”Lesebreite begrenzen
Hex (#rrggbb)FarbkanäleHäufigstes Farbformat
rgb() / hsl()Farbkanäle mit TransparenzFarbsysteme, Alpha-Werte
currentColorAktuelle colorDynamische Border/Schatten-Farben

Du kennst jetzt die wichtigsten CSS-Einheiten und weißt, wann du welche einsetzen solltest. Im nächsten Artikel geht es um CSS Custom Properties: Variablen, die dein CSS wartbarer und flexibler machen.

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.