CSS Einheiten: Der Ultimative Guide
CSS bietet eine Vielzahl von Einheiten, die bei der Bestimmung von Größen verschiedener CSS-Eigenschaften verwendet werden können. Die Kenntnis all dieser Einheiten kann der Schlüssel für ein Webdesign sein, das einfach zu verwalten ist und auf jedem Endgerät gut aussieht. In diesem Beitrag gehen wir auf alle gängigen CSS-Eigenschaften ein und versuchen ein besseres Verständnis für die Wahl der richtigen Einheiten zu vermitteln.
Was sind CSS-Einheiten?
Eine CSS-Einheit bestimmt die Größe einer Eigenschaft, die Sie für ein Element oder dessen Inhalt festlegen. Wenn Sie z. B. die Eigenschaft margin
eines Absatzes festlegen möchten, geben Sie ihr einen bestimmten Wert. Dieser Wert beinhaltet die CSS-Einheit.\nSchauen wir uns ein kleines Beispiel an:
p { margin: 20px; }
In diesem Fall ist margin
die Eigenschaft, 20px
ist der Wert und px
(Pixel) ist die CSS-Einheit.
Obwohl es üblich ist, Einheiten wie px
zu verwenden, stellt sich oft die Frage: "Was ist die beste Einheit, die man hier verwenden sollte?"
Im Folgenden finden Sie einige Überlegungen, die Sie bei der Auswahl eines Einheitentyps anstellen sollten, sowie Beispiele für die Verwendung:
Absolute vs. Relative Einheiten
Bei der Auswahl der zu verwendenden Einheiten ist es wichtig, die beiden Kategorien von Einheiten zu berücksichtigen: absolute und relative Einheiten.
Absolute Einheiten
Einheiten, die "absolut" sind, haben unabhängig vom übergeordneten Element oder der Fenstergröße die gleiche Größe. Das bedeutet, dass eine Eigenschaft mit einem Wert, der eine absolute Einheit hat, diese Größe hat, wenn sie auf einem Telefon oder einem großen Monitor (und allem dazwischen!) betrachtet wird.
Absolute Einheiten können bei der Arbeit an einem Projekt nützlich sein, bei dem die Reaktionsfähigkeit nicht berücksichtigt wird. So können z. B. Desktop-Anwendungen, deren Größe nicht geändert werden kann, für die Standardabmessungen gestylt werden. Wenn sich das Fenster nicht skalieren lässt, muss sich auch der Inhalt nicht ändern.
Absolute Einheiten sind für responsive Websites weniger geeignet, da sie sich nicht skalieren lassen, wenn sich die Bildschirmgröße ändert oder der Nutzer hineinzoomt.
Absolute Einheit | Beschreibung | Beispiel |
---|---|---|
px | 96px = 1 Zoll = 2,54cm | font-size: 12px; |
pt | 72pt = 1 Zoll = 2,54cm | font-size: 12pt; |
pc | 12pt = 1pc | font-size: 1.2pc; |
cm | Zentimeter | font-size: 0.6cm; |
mm | Millimeter (10 mm = 1 cm) | font-size: 4mm; |
in | Zoll = 2,54cm | font-size: 0.2in; |
Pixel (px
) sind in der Regel die beliebteste absolute Einheit für Bildschirme. Zentimeter, Millimeter und Zoll sind für den Druck gebräuchlicher und vielleicht wussten Sie nicht einmal, dass es diese Optionen gibt!
Relative Einheiten
Relative Einheiten sind für die Gestaltung von responsiven Websites nützlich, da sie relativ zur übergeordneten Größe oder zur Fenstergröße (je nach Einheit) skaliert werden.
In der Regel können relative Einheiten als Standard für responsive Sites verwendet werden. So können Sie vermeiden, dass Sie Stile für unterschiedliche Bildschirmgrößen anpassen müssen.
Die Bestimmung von relativen Einheiten kann etwas schwieriger sein als die von absoluten Einheiten, also gehen wir die Optionen im Detail durch.
Relative Einheit | Beschreibung |
---|---|
% | Relativ zur Breite des übergeordneten Elements |
em | Relativ zur aktuellen Schriftgröße des Elements |
rem | Relativ zur Schriftgröße des Root-Elements (z. B. des <html>-Elements). "rem" = "root em" |
ch | Zeichen-Anzahl (1 Zeichen entspricht der Breite des Zeichens 0/Null der aktuellen Schriftart) |
vh | Relativ zur Höhe des Viewports (Fenster- oder Anwendungsgröße). 1vh = 1/100 der Höhe des Viewports |
vw | Bezogen auf die Breite des Ansichtsfensters. 1vw = 1/100 der Breite des Viewports |
vmin | Relativ zur kleineren Abmessung des Ansichtsfensters (z. B. bei Hochformat relativ zur Breite). 1vmin = 1/100 der kleineren Abmessung des Viewports. |
vmax | Relativ zur größeren Dimension des Ansichtsfensters (z. B. die Breite bei Quertformat). 1vmax = 1/100 der größeren Abmessung des Viewports. |
ex | Bezogen auf die Höhe des Kleinbuchstabens "x" der aktuellen Schriftart. |
Es ist nicht immer klar, welche dieser Optionen am besten für jede Art von CSS-Eigenschaft zu verwenden ist. Beispielsweise ist %
in der Regel für layoutbezogene Eigenschaften wie width
besser geeignet als für font-size
.
%
%
bezieht sich auf die Breite des Parent-Elements. Möchte man z. B. 10% der Container-Breite als Margin verwenden:
.child { margin: 10%; }
Wird das Parent-Element breiter, wird auch die Margin größer.
em
Die Einheit em
bezieht sich auf die Schriftgröße des Parent-Elements. Hat ein Container die Schriftgröße 30px
entspricht 0.5em
15px
.
Wir raten in den meisten Fällen von der Verwendung von em
ab, da dies zu unberechenbarem Verhalten bei Änderungen führen kann.
.child { font-size: 0.5em; }
rem
Die wohl beliebteste relative Einheit. rem
steht für Root Em und bezieht sich auf die Schriftgröße des Root-Elements. Diese beträgt meist 16px. Möchte man also eine Schriftgröße von 32px verwendet man 2rem
. Der Vorteil von rem
gegenüber px
liegt darin, dass Nutzer-Einstellungen wie Browser-Zoom berücksichtigt werden, was bei absoluten Einheiten wie px
nicht der Fall ist.
Gleichzeitig kann über eine Media-Query die Schrift-Größe des Root-Elements angepasst werden, was sich auf alle Elemente, welche mit rem
gestylt sind, auswirkt und so die Entwicklung einer responsiven Website vereinfacht.
.header { font-size: 2rem; }
ch
Während sich die Einheit ch
für Monospaced-/Fixbreiten-Schriften wie Courier auf die Breite eines Buchstaben bezieht, kann sie bei Proportionalschriften wie Arial unvorhersehbar sein.
Wenn Sie zum Beispiel die Schriftart Courier verwenden und die Breite eines Elements auf 60ch einstellen, ist dieses Element genau 60 Zeichen breit.
Wenn Sie jedoch die Schriftart Arial verwenden und die Breite eines Elements auf 60 Zeichen einstellen, ist nicht vorhersehbar, wie breit das Element sein wird - die Zeichen können über den Container hinausgehen oder ihn unterschreiten.
.kleiner-text { width: 10ch; }
vh
vh
(Viewport-Height) bezieht sich auf 1% der Höhe des Browser-Fensters. Eine Height von 100vh
entspricht also dem gesamten Viewport. vh
kann z. B. für die Definition der Höhe des Website-Heros verwendet werden, wenn man sicherstellen möchte, dass der Hero den gesamten Viewport einnimmt.
.hero { height: 100vh; }
vw
vw
(Viewport-Width) bezieht sich auf 1% der Breite des Browser-Fensters. Eine Width von 100vw
entspricht also dem gesamten Viewport. Möchten man einen Container genau halb so breit wie das Browser-Fenster haben verwendet man 50vw
.halbe-breite { width: 50vw; }
vmin
vmin
beschreibt die kleinere der beiden Viewport-Dimensionen. Ist das Browser-Fenster im Querformat bezieht sich vmin
auf dessen Höhe. Ist es im Hochformat auf dessen Breite.
.min-width { width: 100vmin; }
vmax
vmax
beschreibt die größere der beiden Viewport-Dimensionen. Ist das Browser-Fenster im Querformat bezieht sich vmax
auf dessen Breite. Ist es im Hochformat auf dessen Höhe. vmax
kann praktisch sein, wenn man sicherstellen möchte, dass ein Bild, Pattern oder Overlay den den ganzen Viewport abdeckt.
.hintergrund-pattern { width: 100vmax; }
ex
Die CSS-Einheit ex wird nicht sehr häufig verwendet, ist aber gutes Maß für die X-Höhe einer Schrift. Angenommen, Sie möchten, dass die Zeilenhöhe (Line-Height) einer Schrift doppelt soch hoch ist, die der Buchstabe "x" dieser Schrift.
.zwei-x-line-height { line-height: 2ex; }
Fazit
Wann und wie Sie Ihre CSS-Einheiten auswählen, hängt im Wesentlichen von einigen Fragen ab:
- Soll das Element skaliert werden, wenn sich die Größe des Viewports ändert? (Auf verschieden großen Endgeräten)
- Wenn ja, worauf soll die Slakierung des Elements basieren?
Wenn Sie diese Fragen beantwortet haben, ist es viel einfacher, die beste Einheit zu finden. 💪