CSS/Wertetypen/Zahlen, Maße und Maßeinheiten
Inhaltsverzeichnis
Zahlen[Bearbeiten]
In CSS sind alle Zahlen aus dem Bereich der rationalen Zahlen in Dezimalbruchdarstellung erlaubt. Als Zahl wird jeder numerische Wert bezeichnet, dem keine Maßangabe folgt.
Unterschieden wird zwischen Ganzzahlen und Fließkommazahlen. Das Dezimalkomma wird in CSS durch den Punkt (.
) repräsentiert. Die Null vor dem Punkt bei kleinen Zahlen ist optional.
z-index: 1; /* Ganzzahl */
z-index: -2; /* negative Ganzzahl */
line-height: 1.5; /* Fließkommazahl */
opacity: .5; /* Fließkommazahl ohne Null vor dem Komma (entspricht 0.5) */
vertical-align: -.5em; /* negative Fließkommazahl ohne Null vor dem Komma */
opacity: 1/2; /* keine Dezimalbruchdarstellung, nicht erlaubt */
Für viele Eigenschaften ist der Bereich der erlaubten Zahlen eingeschränkt, etwa auf Ganzzahlen oder positive Werte.
Siehe auch: Zahlenwerte in JavaScript
Maße und Maßeinheiten[Bearbeiten]
Maße werden definiert, indem direkt nach einer Zahl, ohne jede Trennung, eine Maßeinheit notiert wird. Bei der Zahl Null ist die Angabe der Maßeinheit optional.
border-top-width: 3px;
margin: 0em; /* Diese und die nachfolgende Angabe sind identisch. */
margin: 0;
In CSS gibt es eine Vielzahl von Maßen: Längenmaße (absolute und relative), Kreismaße und auch Zeitmaße.
Längenmaße[Bearbeiten]
Absolute Längenmaße[Bearbeiten]
Die Gruppe der absoluten Längenmaße setzt sich aus zwei Teilen zusammen: Der relativen Einheit Pixel sowie den physischen Einheiten Zoll, Pica, Punkt, Zentimeter und Millimeter.
Die Basiseinheit Pixel[Bearbeiten]
Die Basiseinheit für alle Längenmaße ist der (CSS)-Pixel[1]. Er wird definiert als gerade noch zu sehender Punkt, der in Armlänge vom Betrachter entfernt ist.
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.
Physische Längenmaße[Bearbeiten]
CSS kennt fünf physische Längenmaße, die nachfolgend kurz erläutert werden.
Einheit | Name in CSS | Beschreibung | physische Größe | Größe in Pixel |
---|---|---|---|---|
Zoll | in
|
Ein Zoll ist genau 2,54 cm lang. | 2,54 cm | 96 Pixel |
Pica | pc
|
Ein Pica ist der sechste Teil eines Zolls. Es ist daher 12 Punkt lang. Pica ist eine in der Typografie verbreitete Maßeinheit. | 1/6 Zoll | 16 Pixel |
Punkt | pt
|
Ein Punkt ist der 72ste Teil eines Zolls. Auch der Punkt ist eine in der Typografie verbreitete Maßeinheit. | 1/72 Zoll | 1,33 Pixel (gerundet) |
Zentimeter | cm
|
Ein Zentimeter ist der hundertste Teil eines Meters und somit 10 Millimeter lang. | 1 cm | 37,8 Pixel (gerundet) |
Millimeter | mm
|
Ein Millimeter ist der tausendste Teil eines Meters bzw. der zehnte Teil eines Zentimeters. | 0,1 cm | 3,78 Pixel (gerundet) |
Pixel | 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 |
CSS gibt zwei Methoden vor, physische Längenmaße zu verarbeiten.
Die erste Methode betrifft lediglich die Druckausgabe. Bei diesem Verfahren 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.
Die zweite Methode betrifft alle anderen grafischen Ausgabemedien.
Die genaue, physische Größe eines Pixels ist für jedes Gerät eine andere. Die Umrechnung von Pixeln auf physische Maße ist daher nicht möglich. Da Maßangaben, die auf allen Ausgabemedien identisch angezeigt werden, in der Regel nicht sinnig sind (beispielsweise verfügt ein mobiles Ausgabegerät nur über wenige Quadratzoll Anzeigefläche, eine Leinwand hingegen mehr als ein Quadratmeter), werden physische Maße mit einem vordefinierten Faktor umgerechnet.
Relative Längenmaße[Bearbeiten]
Als relativ werden Längenmaße bezeichnet, deren Umrechnungsfaktor zu einem absoluten Maß variabel ist. So kann ein bestimmtes Maß je nach Definition (auch innerhalb eines Dokuments) verschiedene Größen annehmen.
Einheit | Name in CSS | Beschreibung | Beispiel |
---|---|---|---|
em | em
|
Ein em repräsentiert die vom Browser berechnete Schriftgröße des Elements; dabei wird die Seitenlänge des Gevierts als Referenz verwendet. Das Geviert ist ein Quadrat, dessen Seitenlänge dem Mindestzeilenabstand der verwendeten Schrift entspricht, grob sind dies auch die Abmessungen des Großbuchstabens "M".Wird die Schriftgröße selbst ( |
margin: 1em;
|
Wurzel-Em | rem
|
Ein rem (root-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.) |
font-size: 1.5rem;
|
ex | ex
|
Die Einheit ex wird ähnlich der Einheit em verarbeitet. Ein 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).
|
font-size-adjust: .5ex;
|
Null-Breite | ch
|
Die Einheit ch wird ähnlich der Einheit em verarbeitet. Ein ch entspricht jedoch 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.
|
font-size-adjust: .5ch;
|
Viewport-Breite | vw
|
Die Einheit vw entspricht dem 100. Teil der Breite des Anzeigebereichs (Viewport). Es gilt also: 100vw = Breite des Viewports.
|
width: 25vw;
|
Viewport-Höhe | vh
|
Die Einheit vh entspricht dem 100. Teil der Höhe des Anzeigebereichs (Viewport). Es gilt also: 100vh = Höhe des Viewports.
|
height: 50vh;
|
Viewport-Minimalabmessung | vmin
|
Die Einheit vmin entspricht dem 100. Teil der Breite oder der Höhe des Anzeigebereichs (Viewport), je nachdem, welcher Wert der kleinere ist. Bei einem Viewport mit den Maßen 621px×500px entspräche 1vmin also genau 5px .
|
max-width: 100vmin;
|
Viewport-Maximalabmessung | vmax
|
Die Einheit vmax entspricht dem 100. Teil der Breite oder der Höhe des Anzeigebereichs (Viewport), je nachdem, welcher Wert der größere ist. Bei einem Viewport mit den Maßen 800px×431px entspräche 1vmax also genau 8px .
|
height: 50vmax;
|
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.
rem
, vw
, vh
und ch
werden vom Internet Explorer erst ab Version 9 unterstützt.
Im Internet Explorer 9 wurde eine frühere Spezifikation umgesetzt, er unterstützt vm
statt vmin
.
vmax
in keiner Version, Microsoft Edge erst ab Version 16.Und was ist jetzt die richtige Einheit?[Bearbeiten]
Zur Verwendung gibt es keine eindeutige Empfehlung, je nach Einsatzzweck bieten sich verschiedene Maßeinheiten an:
- 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, sodass
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 (br) wird oft auf die jeweilige Zeilenhöhe gesetzt, um den vertikalen Rhythmus einzuhalten. Hierfür ist
em
richtig,rem
falsch.
- Gerade die Elemente sub, sup und rt sind Kandidaten für Schriftgrößen in
- Für Längenangaben
%
,rem
,em
bzw.px
. - Für media queries
em
, nichtpx
.[2]
Weblinks[Bearbeiten]
- W3C: CSS-Tipps Einheiten
- #webtypobuch: Retina-Bildschirme und das Pixel als Maßeinheit
- t3n: CSS-Maßeinheiten: Über das Pixel hinaus
Prozentangaben[Bearbeiten]
Prozentangaben werden definiert, indem direkt nach einer Zahl das Prozentzeichen (%
) notiert wird, z. B. 17%
.
Prozentangaben in einer Eigenschaft können sich auf verschiedene Werte beziehen: Auf den Wert derselben Eigenschaft des Elternelements (z. B. die width
-Eigenschaft), auf den Wert einer anderen Eigenschaft, die auf dasselbe Element angewendet wird (z. B. die line-height
-Eigenschaft, die sich auf die font-size
-Eigenschaft bezieht) oder auf den Wert derselben Eigenschaft eines Vorfahrenelements, wenn das Element von seinem Elternelement abgekoppelt wurde (z. B. durch Verwendung absoluter Positionierung).
width: 100%;
line-height: 120%;
Winkelmaße[Bearbeiten]
In CSS3 werden Winkelmaße definiert, sodass Rotationen festgelegt werden können. Bei positiven Werten erfolgt die Rotation im Uhrzeigersinn, bei negativen Werten gegen den Uhrzeigersinn. Siehe auch Drehsinn.
Einheit | Name in CSS | Beschreibung | Beispiel |
---|---|---|---|
Grad (°) | deg
|
Ein Vollwinkel, also eine Kreisumrundung, entspricht 360°. | transform: rotate(45deg);
|
Gon | grad
|
100 Gon entsprechen einer 90°-Drehung, also einem rechten Winkel. Eine Kreisumrundung entspricht somit 400 Gon, also 400grad .
|
transform: rotate(75grad);
|
Radiant | 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 .
|
transform: rotate(2.5rad);
|
Vollwinkel | turn
|
Ein Vollwinkel entspricht einer Kreisumrundung. | transform: rotate(.75turn);
|
Zeitmaße[Bearbeiten]
Zeitmaße werden genutzt um Verzögerungen zu definieren. Zeitmaße können nur positiv sein.
Einheit | Name in CSS | Beschreibung | Beispiel |
---|---|---|---|
Sekunden | s
|
Die Einheit s entspricht genau einer Sekunde.
|
transition-delay: 1s;
|
Millisekunden | ms
|
Eine Millisekunde entspricht dem 1000. Teil einer Sekunde. 1s entspricht also 1000ms .
|
transition-delay: 1200ms;
|
Verhältnisse[Bearbeiten]
Verhältnisse werden verwendet um zwei Werte in ein Verhältnis zu setzen. Ein Verhältnis besteht aus einer positiven Zahl, gefolgt von einem Schrägstrich, wiederum gefolgt von einer zweiten positiven Zahl. Zwischen Zahl und Schrägstrich sind Leerzeichen erlaubt.
@media (aspect-ratio: 16/10) { }
Bruchteile[Bearbeiten]
Im Flexbox Modul wurde für die zusammenfassende Eigenschaft flex ein ganzzahliger, einheitenloser Wert eingeführt, der einem Bruchteil des verfügbaren zu füllenden Platzes entspricht. Im Grid Layout Module erhält dieser Wert die Einheit fr
(fraction, engl. für Bruchteil).
Details: caniuse.com
grid-template-columns: 1fr 4fr 2fr ;
Auflösungen[Bearbeiten]
Details: caniuse.com
Der Begriff Auflösung beschreibt die Dichte der Bildpunkte eines Ausgabemediums. Mit Hilfe dieser Einheiten kann angegeben werden, wie viele Bildpunkte auf einer Strecke in einer Einheit wie Zoll oder Zentimeter entfallen.
Einheit | Name in CSS | Beschreibung | Beispiel |
---|---|---|---|
Bildpunkte pro Zoll | dpi
|
Die Einheit dpi gibt die Anzahl der Bildpunkte pro Zoll an.
|
@media (resolution: 96dpi) { }
|
Bildpunkte pro Zentimeter | dpcm
|
Die Einheit dpcm gibt die Anzahl der Bildpunkte pro Zentimeter an.
|
@media (max-resolution: 50dpcm) { }
|
Weblinks[Bearbeiten]
- ↑ 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 - ↑ http://forum.selfhtml.org/self/2015/may/23/welche-einheit-fuer-schriftgroesse-strich-laengenangaben/1641268#m1641268
- ↑ https://developer.mozilla.org/de/docs/Web/CSS/resolution