CSS/Wertetypen/Maßangaben
- 15min
- leicht
- • CSS-Syntax
In CSS gibt es eine Vielzahl von Maßangaben:
- Längenmaße (absolute und relative),
- Kreismaße und auch
- Zeitmaße.[1]
Für eine Maßangabe schreiben Sie direkt hinter dem Zahlenwert, ohne jede Trennung, eine Maßeinheit. Für eine Längenangabe mit dem Betrag 0 ist die Angabe der Maßeinheit optional.
border-top-width: 3px;
margin: 0em; /* Diese und die nachfolgende Angabe sind identisch. */
margin: 0;
Inhaltsverzeichnis
Längenangaben
Die Gruppe der absoluten Längenmaße setzt sich aus zwei Teilen zusammen:
- den physischen Einheiten Zoll, Pica, Punkt, Zentimeter und Millimeter.
- sowie der Einheit Pixel, die in einem festen Verhältnis zu den physischen Einheiten steht, aber mit den Bildpunkten des Ausgabegerätes nicht übereinstimmen muss. Deshalb spricht man hier auch von CSS-Pixeln.
Absolute Längenmaße
CSS kennt sechs physische oder absolute Längenmaße:
Einheit | Name | Größe |
---|---|---|
cm | Zentimeter | 1 cm = 37,8 Pixel (gerundet) |
mm | Millimeter | 0,1 cm = 3,78 Pixel (gerundet) |
Q | Quarter-millimeters | 1Q = 1/4mm |
in | Zoll | 2,54 cm ≙ 96 Pixel |
pc | Pica | 1/6 Zoll ≙ 16 Pixel |
pt | Punkt[2] | 1/72 Zoll ≙ 1,33 Pixel (gerundet) ca. 0,3133 mm (im Drucklayout) |
px | Ein CSS-Pixel ist der sichtbare Bereich eines Pixel auf einem Gerät mit einer Punktdichte von 96 DPI und einer Armlänge Abstand vom Leser. |
variabel ≙ 0,75 Punkt = 1/96in |
Der Umrechnungsfaktor zwischen den Einheiten ist fest. Frühere Versuche, die Umrechnung zwischen px und den anderen Einheiten an das verwendete Gerät anzupassen, führten nur dazu, dass viele (unsauber gestaltete) Webseiten unlesbar wurden.
CSS gibt zwei Methoden vor, physische Längenmaße zu verarbeiten.[3]
- Bei der Druckausgabe werden alle physischen Maße ohne Abweichung auf den Ausdruck angewendet. Das bedeutet, dass ein als
1in
hoch und breit definiertes Element beim Nachmessen auf Papier 2,54 cm hoch und breit sein sollte.
Aus diesem Grund eignen sich physische Längenmaße, insbesondere die aus der Typografie bekannten, für das Erstellen von speziellen Druckstylesheets. - Bei allen anderen grafischen Ausgabemedien ist die genaue, physische Größe eines Pixels für jedes Gerät eine andere.
Die Umrechnung von CSS-Pixeln auf physische Maße ist daher nicht möglich!
Maßangaben, die auf allen Ausgabemedien identisch angezeigt werden sollen, sind in der Regel nicht sinnig.- Beispielsweise verfügt ein mobiles Ausgabegerät nur über wenige Quadratzoll Anzeigefläche, eine Leinwand hingegen mehrere Quadratmeter. Trotzdem kann das kleine Smartphone-Display eine höhere Anzahl an Bildpunkten haben als der Projektor.
- Ein Projektor hat eine festgelegte Anzahl von Pixeln in x- und y-Richtung, die Darstellungsgröße ergibt sich aus dem Abstand zur Leinwand.
Die Basiseinheit Pixel
Die Basiseinheit für alle Längenmaße ist der CSS-Pixel[4]. Er wird beschrieben als gerade noch zu sehender Punkt, der in Armlänge vom Betrachter entfernt ist. Da diese Beschreibung sehr schwammig ist, gilt die technische Definition, dass ein Pixel eine Größe von 1/96 Zoll hat.
Da diese Parameter alle nicht genau definiert sind, und es sich bei CSS-Pixeln entgegen landläufiger Meinung nicht um einen physisch vorhandenen Bildpunkt auf dem Monitor handelt, dem so genannten device pixel (engl. für Gerätepixel), sollten Sie Pixel als Einheit vermeiden.[5]
Hauptartikel: Vergessen Sie den Begriff Pixel!
Hauptartikel: Punktdichte (dpi)
Relative Längenmaße
Relative Längenmaße beziehen sich auf etwas anderes, z. B. auf die Größe der Schriftart des übergeordneten Elements oder auf die Größe des Ansichtsfensters.
Der Vorteil der Verwendung relativer Einheiten besteht darin, dass Sie bei sorgfältiger Planung dafür sorgen können, dass die Größe von Text oder anderen Elementen relativ zu allem anderen auf der Seite skaliert.
Einheit | Relativ zur Schriftgröße |
---|---|
em | Schriftgröße des Eltern-Elements, wenn es sich um typografische Eigenschaften wie font-size handelt, und Schriftgröße des Elements selbst, wenn es sich um andere Eigenschaften wie width handelt. |
rem | Ein rem (root-em =Wurzel-Em) entspricht der Schriftgröße, die für das Wurzelelement (in HTML das html -Element) festgelegt wurde.(Evtl. Änderungen der Schriftgröße in Elternelementen können so übersprungen werden.) |
ex | entspricht jedoch der Größe des Kleinbuchstabens "x". Sofern die verwendete Schriftart eine x-Höhe definiert, wird dieser Wert verwendet. Andernfalls entspricht ein ex genau einem halben em (0.5em).
|
ch | entspricht der Breite der Ziffer "0". Sofern die verwendete Schriftart eine Null-Breite definiert, wird dieser Wert verwendet. Andernfalls wird versucht die durchschnittliche Breite aller Zeichen zu berechnen, sodass dieser Wert verwendet werden kann. |
lh | entspricht der line-height des Elements |
Relativ zur Viewport-Größe | |
vw | entspricht 1% der Viewport-Breite |
vh | entspricht 1% der Viewport-Höhe |
vb | entspricht 1% der Viewportabmessung in Block-Richtung (bei horizontaler Schrift: vh; bei vertikaler Schrift: vw) |
vi | entspricht 1% der Viewportabmessung in Inline-Richtung (bei horizontaler Schrift: vw; bei vertikaler Schrift: vh) |
lvh | entspricht 1% der Höhe des großen Viewports, d.h. wenn auf Mobilgeräten Adressleiste und Menüleiste nicht angezeigt werden |
svh | entspricht 1% der Höhe des kleinen Viewports, d.h. wenn auf Mobilgeräten Adressleiste und Menüleiste angezeigt werden und Platz beanspruchen |
dvh | entspricht 1% der Höhe des dynamischen Viewports |
vmin | entspricht 1% der Viewport-Minimalabmessung (Breite oder Höhe, je nachdem, welcher Wert der kleinere ist) |
vmax | entspricht 1% der Viewport-Maximalabmessung (Breite oder Höhe, je nachdem, welcher Wert der größere ist) |
Relativ zum Containerelement | |
cqw | entspricht 1% der Container-Breite |
cqh | entspricht 1% der Container-Höhe |
cqb | entspricht 1% der Container-Abmessung in Block-Richtung (bei horizontaler Schrift: cqh; bei vertikaler Schrift: cqw) |
cqi | entspricht 1% der Container-Abmessung in Inline-Richtung (bei horizontaler Schrift: cqw; bei vertikaler Schrift: cqh) |
cqmin | entspricht 1% der Container-Minimalabmessung (Breite oder Höhe, je nachdem, welcher Wert der kleinere ist) |
cqmax | entspricht 1% der Container-Maximalabmessung (Breite oder Höhe, je nachdem, welcher Wert der größere ist) |
Hauptartikel: CSS/Media Queries/Container Queries#Container-Query-Einheiten
Die Übersicht deutet bereits an, dass die genaue Wirkung relativer Maße sich von Eigenschaft zu Eigenschaft unterscheiden kann. Sofern besondere Regeln bei der Verarbeitung relativer Maße zu beachten sind, wird dies in der Beschreibung der einzelnen Eigenschaften erwähnt.
Und was ist jetzt die richtige Einheit?
Zur Verwendung gibt es keine eindeutige Empfehlung, je nach Einsatzzweck bieten sich verschiedene Maßeinheiten an:[6]
- Für Schriftgrößen bieten sich em oder rem an
- Gerade die Elemente sub, sup und rt sind Kandidaten für Schriftgrößen in
em
. - Die Eigenschaften padding, margin und auch border-radius beziehen sich oft auf die Schriftgröße, so dass
em
,rem
oder%
gegenüber absoluten Werten durchaus sinnvoll sind.- Alternativ ist der Wert border-width: thin möglich.
- Der vertikale Abstand zwischen Textabsätzen (p) wird oft auf die jeweilige Zeilenhöhe gesetzt, um den vertikalen Rhythmus einzuhalten. Hierfür ist
em
richtig,rem
falsch. Noch besser:lh
- Gerade die Elemente sub, sup und rt sind Kandidaten für Schriftgrößen in
- Für Längenangaben
%
,rem
oderem
- Für media queries
em
, nichtpx
.[7][8]
Winkelmaße
In CSS3 werden Winkelmaße definiert, so dass Rotationen festgelegt werden können. Bei positiven Werten erfolgt die Rotation im Uhrzeigersinn, bei negativen Werten gegen den Uhrzeigersinn. Siehe auch Drehsinn. Die Angabe einer Einheit ist immer erforderlich, auch wenn der Betrag der Winkelangabe 0 ist.
Einheit | Beschreibung | Beispiel |
---|---|---|
deg | Grad (°), Ein Vollwinkel, also eine Kreisumrundung, entspricht 360°. | transform: rotate(45deg);
|
grad | 100 grad (in der Mathematik als gon bekannt) entsprechen einer 90°-Drehung, also einem rechten Winkel. Eine Kreisumrundung entspricht somit 400 gon, also 400grad .
|
rotate: 75grad;
|
rad | Ein Radiant entspricht einer Drehung, bei dem der Winkel durch die Länge des entsprechenden Kreisbogens im Einheitskreis angegeben wird. Eine Kreisumrundung entspricht somit 2π rad .
|
rotate: 2.5rad;
|
turn | Ein Vollwinkel entspricht einer Kreisumrundung. | rotate: .75turn;
|
Die anderen Beispiele verwenden die neue, einfachere rotate-Eigenschaft. Dort wird der Wert CSS-typisch nach dem Doppelpunkt notiert.
Zeitmaße
Zeitmaße werden genutzt um die Dauer eines Ablaufs oder einer Verzögerung zu definieren. Zeitmaße dürfen nicht negativ sein. Die Angabe einer Einheit ist immer erforderlich, auch wenn der Betrag 0 ist.
Einheit | Beschreibung |
---|---|
s | Sekunde. |
ms | Eine Millisekunde entspricht dem 1000. Teil einer Sekunde. |
Weblinks
- ↑ MDN: CSS values and units
- ↑ Wikikpedia: Punkt (Einheit)
- ↑ CSSWG: Real Physical Lengths
Question: A '1in' length usually isn't actually 1 inch. Can we get physical units that are the correct size, so we can create rulers/etc on webpages that actually work?
Answer: No, currently not. - ↑ The reference pixel is the visual angle of one pixel on a device with a pixel density of 96 DPI and a distance from the reader of an arm’s length.
csswg.org: CSS Values and Units Module, section 5.2: Absolute Lengths - ↑ smashing magazine: There Is No Such Thing As A CSS Absolute Unit von Elad Shechter, Jul 29, 2021
- ↑ W3C: CSS-Tipps Einheiten
- ↑ SELF-Forum: Welche Einheit für Schriftgröße / Längenangaben vom 23.05.2015
- ↑ #webtypobuch: Retina-Bildschirme und das Pixel als Maßeinheit