ToolHub
View All Posts

CSS-Einheiten-Konvertierungsleitfaden: px, rem, em, vw, vh erklärt

Die Wahl der richtigen CSS-Einheit ist eine der einflussreichsten Entscheidungen beim Schreiben von Stylesheets. Die von Ihnen gewählte Einheit bestimmt, wie Elemente über verschiedene Bildschirmgrößen skalieren, wie sie auf Benutzereinstellungen (wie die Browser-Schriftgröße) reagieren und wie vorhersehbar sich Ihr Layout verhält. Dennoch verwenden viele Entwickler aus Gewohnheit standardmäßig Pixel und verpassen die Flexibilität und Barrierefreiheitsvorteile, die relative Einheiten bieten. Dieser Leitfaden deckt alle wichtigen CSS-Einheiten ab, erklärt, wann jede zu verwenden ist, zeigt, wie man zwischen ihnen konvertiert, und bietet praktische bewährte Praktiken für modernes responsives Design.

CSS-Einheitenkategorien verstehen

CSS-Einheiten fallen in zwei große Kategorien: absolute Einheiten und relative Einheiten. Absolute Einheiten haben eine feste physische Größe, während relative Einheiten ihren berechneten Wert von einem anderen Referenzpunkt ableiten. Das Verständnis dieser Unterscheidung ist grundlegend für fundierte Einheitenentscheidungen.

Absolute Einheiten

Absolute Einheiten sind Maße mit fester Größe. Die am häufigsten verwendete absolute Einheit in der Webentwicklung ist das Pixel (px). Weitere absolute Einheiten sind Punkt (pt), Zentimeter (cm), Millimeter (mm) und Zoll (in). Diese Einheiten werden hauptsächlich für Druck-Stylesheets verwendet oder wenn Sie Maße benötigen, die sich nicht mit dem Kontext ändern. In bildschirmbasiertem CSS ist px die einzige absolute Einheit, die Sie regelmäßig verwenden werden.

Relative Einheiten

Relative Einheiten berechnen ihren endgültigen Wert basierend auf einem Referenzwert. em ist relativ zur Schriftgröße des aktuellen Elements, rem ist relativ zur Schriftgröße des Wurzelelements, vw und vh sind relativ zu den Viewport-Abmessungen und Prozentwerte sind relativ zum übergeordneten Element. Relative Einheiten sind der Eckpfeiler von responsivem und barrierefreiem Design, da sie es Ihrem Layout ermöglichen, sich automatisch an verschiedene Kontexte anzupassen.

Pixel (px): Die Basiseinheit

Pixel sind die intuitivste CSS-Einheit, da sie direkt auf Bildschirmpixel abbilden (mit einigen Einschränkungen bezüglich des Gerätepixelverhältnisses). px-Werte sind unabhängig vom Kontext immer gleich, was sie vorhersehbar und leicht verständlich macht. Diese Vorhersehbarkeit hat jedoch ihren Preis: Pixelbasierte Größen skalieren nicht, wenn Benutzer die Standard-Schriftgröße ihres Browsers ändern, was Barrierefreiheitsprobleme verursacht.

Wann px verwenden

Wann px vermeiden

Vermeiden Sie px für Schriftgrößen, Innenabstände, Außenabstände und Layoutgrößen, die sich an Benutzereinstellungen anpassen sollten. Benutzer, die die Browser-Schriftgröße auf 20px erhöhen, erwarten, dass der gesamte Text entsprechend skaliert, aber px-basierte Schriftgrößen reagieren nicht auf diese Änderung.

rem: Wurzelrelative Größen

). In den meisten Browsern beträgt die Standard-Wurzelschriftgröße 16px, daher ist 1rem = 16px, 0,5rem = 8px, 2rem = 32px. Der entscheidende Vorteil von rem ist, dass es skaliert, wenn Benutzer die Standard-Schriftgröße ihres Browsers ändern, was es zur besten Wahl für Barrierefreiheit macht.

px in rem umrechnen

Die Umrechnungsformel ist einfach: Teilen Sie den Pixelwert durch die Wurzelschriftgröße.

rem = px / root-font-size

// With default root font size of 16px:
12px = 12 / 16 = 0.75rem
16px = 16 / 16 = 1rem
24px = 24 / 16 = 1.5rem
32px = 32 / 16 = 2rem
48px = 48 / 16 = 3rem

Der 62,5%-Trick

Viele Entwickler empfinden die Division durch 16 als umständlich. Ein beliebter Trick besteht darin, die Wurzelschriftgröße auf 62,5% zu setzen, wodurch 1rem gleich 10px wird. Dies vereinfacht das Kopfrechnen: 14px wird zu 1,4rem, 24px wird zu 2,4rem und so weiter.

html {
    font-size: 62.5%; /* 1rem = 10px */
}

body {
    font-size: 1.6rem; /* 16px */
}

h1 {
    font-size: 3.2rem; /* 32px */
    margin-bottom: 1.6rem; /* 16px */
}
Hinweis zur Barrierefreiheit: Der 62,5%-Trick funktioniert, weil er die Schriftgrößeneinstellungen des Benutzers weiterhin respektiert. Das Setzen von font-size: 62,5% auf dem Wurzelelement ergibt 62,5% des vom Benutzer gewählten Standardwerts. Wenn ein Benutzer also seinen Browser auf 20px einstellt, wird das Wurzelelement zu 12,5px, und alle rem-Werte skalieren proportional. Setzen Sie die Wurzelschriftgröße niemals auf einen festen px-Wert, da dies die Benutzereinstellungen überschreibt.

em: Kontextrelative Größen

Die em-Einheit ist relativ zur Schriftgröße des aktuellen Elements (oder für andere Eigenschaften als font-size relativ zum übergeordneten Element). Das bedeutet, 1em entspricht der aktuellen Schriftgröße, und em-Werte setzen sich zusammen, wenn Elemente verschachtelt werden. Dieses Zusammensetzungsverhalten kann sowohl mächtig als auch verwirrend sein.

Das Zusammensetzungsproblem

/* Parent: font-size 16px */
.parent {
    font-size: 1em; /* 16px */
}

/* Child: 1.2em of parent's 16px = 19.2px */
.child {
    font-size: 1.2em;
}

/* Grandchild: 1.2em of child's 19.2px = 23.04px */
.grandchild {
    font-size: 1.2em;
}

Jedes verschachtelte Element multipliziert die Schriftgröße, was zu exponentiellem Wachstum führt. Deshalb ist rem im Allgemeinen besser für Schriftgrößen geeignet. em glänzt jedoch in bestimmten Anwendungsfällen, in denen Sie eine Skalierung auf Komponentenebene wünschen.

Wann em verwenden

Viewport-Einheiten: vw, vh, vmin, vmax

Viewport-Einheiten sind relativ zu den Abmessungen des Browserfensters. 1vw entspricht 1% der Viewport-Breite, 1vh entspricht 1% der Viewport-Höhe. vmin ist das kleinere von vw und vh, vmax das größere. Diese Einheiten sind entscheidend für die Erstellung von Layouts, die auf den verfügbaren Bildschirmplatz reagieren.

Häufige Anwendungsfälle für Viewport-Einheiten

AnwendungsfallEinheitBeispiel
Vollbild-Hero-Bereichvhheight: 100vh
Fließende Typografievw + clampfont-size: clamp(1rem, 2.5vw, 2rem)
Nebeneinander-Layoutvwwidth: 50vw
Quadratisches Elementvminwidth: 20vmin; height: 20vmin
Vollbild-Overlayvw + vhwidth: 100vw; height: 100vh

Das mobile vh-Problem

In mobilen Browsern entspricht 100vh nicht immer der sichtbaren Viewport-Höhe. Die Adressleiste und die Navigationssteuerelemente des Browsers nehmen Platz ein, aber 100vh umfasst den Bereich hinter diesen Steuerelementen. Dies führt dazu, dass Inhalte am unteren Rand von Vollhöhenbereichen abgeschnitten werden. Modernes CSS bietet dvh (dynamische Viewport-Höhe) als Lösung, die dynamische Symbolleisten berücksichtigt. Alternativ können Sie JavaScript verwenden, um eine CSS-Benutzerdefinierte Eigenschaft basierend auf window.innerHeight festzulegen.

/* Modern approach */
.hero {
    height: 100dvh; /* Dynamic viewport height */
}

/* Fallback for older browsers */
.hero {
    height: 100vh;
    height: 100dvh;
}

Neue Viewport-Einheiten: svh, lvh, dvh

CSS führte drei neue Viewport-Höheneinheiten ein, um das mobile Viewport-Problem zu lösen:

Dieselben Small-/Large-/Dynamic-Varianten existieren für die Breite (svw, lvw, dvw) und Min-/Max-Einheiten (svmin, lvmin, dvmin usw.). Verwenden Sie dvh für mobile Vollbildlayouts, svh, wenn Sie sicherstellen müssen, dass Inhalte ohne Scrollen sichtbar sind, und lvh, wenn Sie den maximal möglichen Raum füllen möchten.

Fließende Typografie mit clamp()

Die CSS-Funktion clamp() ist ein Game-Changer für responsive Typografie. Sie akzeptiert drei Werte: einen Minimalwert, einen bevorzugten Wert und einen Maximalwert. Der Browser wählt den bevorzugten Wert, begrenzt ihn jedoch auf das Minimum und Maximum.

/* Font size scales from 1rem to 2.5rem based on viewport */
h1 {
    font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Padding scales proportionally */
.container {
    padding: clamp(1rem, 3vw, 3rem);
}

Dieser Ansatz bietet Ihnen die Vorteile der Viewport-basierten Skalierung ohne das Risiko, dass Text auf Mobilgeräten zu klein oder auf Desktops zu groß wird. Er eliminiert die Notwendigkeit von Medienabfrage-Breakpoints für Schriftgrößen und reduziert die CSS-Komplexität erheblich.

Konvertierungsreferenztabelle

Verwenden Sie diese Tabelle als Kurzreferenz für gängige Konvertierungen. Alle Werte gehen von einer Wurzelschriftgröße von 16px und einem Viewport von 1920x1080 aus.

pxremem (bei 16px)vw (1920px)% (von 16px)
8px0,5rem0,5em0,417vw50%
12px0,75rem0,75em0,625vw75%
16px1rem1em0,833vw100%
20px1,25rem1,25em1,042vw125%
24px1,5rem1,5em1,25vw150%
32px2rem2em1,667vw200%
48px3rem3em2,5vw300%
64px4rem4em3,333vw400%

Bewährte Praktiken für CSS-Einheiten

Müssen Sie schnell zwischen CSS-Einheiten konvertieren? Probieren Sie unseren kostenlosen Online-CSS-Einheitenkonverter aus. Konvertieren Sie sofort zwischen px zu rem, em zu px, Viewport-Einheiten und mehr.

CSS-Einheitenkonverter

Häufig gestellte Fragen

Sollte ich px oder rem für Schriftgrößen verwenden?

Verwenden Sie rem für Schriftgrößen in den meisten Fällen. rem-Einheiten sind relativ zur Wurzelschriftgröße und skalieren daher, wenn Benutzer die Standard-Schriftgröße ihres Browsers ändern. Dies verbessert die Barrierefreiheit. Verwenden Sie px nur für feinkörnige Details wie Rahmen, Schatten oder wenn Sie pixelgenaue Präzision benötigen, die nicht mit Benutzereinstellungen skalieren sollte.

Was ist der Unterschied zwischen em und rem?

em ist relativ zur Schriftgröße des übergeordneten Elements, während rem relativ zur Wurzelschriftgröße ist (normalerweise 16px). em setzt sich bei Verschachtelung zusammen, was zu unerwarteten Größenänderungen führen kann. rem bezieht sich immer auf dieselbe Basis, was es vorhersehbarer macht. Verwenden Sie rem für globale Größen und em für die Skalierung auf Komponentenebene, bei der verschachtelte Elemente proportional skalieren sollen.

Wie rechne ich px in rem um?

Teilen Sie den Pixelwert durch die Wurzelschriftgröße (normalerweise 16px). Zum Beispiel: 24px / 16 = 1,5rem. Die Formel lautet: rem = px / wurzelschriftgröße. Wenn die Wurzelschriftgröße 16px beträgt, dann ist 1rem = 16px, 0,5rem = 8px, 2rem = 32px. Sie können einen Online-CSS-Einheitenkonverter für schnelle Umrechnungen verwenden.

Wann sollte ich Viewport-Einheiten (vw, vh) verwenden?

Verwenden Sie Viewport-Einheiten, wenn Sie eine Größe relativ zum Browserfenster wünschen. Häufige Anwendungsfälle sind Vollbild-Hero-Bereiche (100vh), Typografie, die mit der Viewport-Breite skaliert (clamp mit vw), und Layouts, die den verfügbaren Platz füllen sollen. Vermeiden Sie die alleinige Verwendung von vw für Fließtext, da er auf Mobilgeräten zu klein oder auf Breitbildschirmen zu groß werden kann.

Was ist die beste CSS-Einheit für responsives Design?

Es gibt keine einzelne beste Einheit. Eine Kombination funktioniert am besten: rem für Schriftgrößen und Abstände, Prozentwerte für Breiten innerhalb von Containern, Viewport-Einheiten für Vollbildelemente und CSS clamp() für fließende Typografie, die zwischen Minimal- und Maximalgrößen skaliert. Der Schlüssel ist zu verstehen, worauf sich jede Einheit bezieht, und entsprechend zu wählen.

ToolHub's collection of 300+ free online tools including CSS unit converters, formatters, and more — no sign-up required.