`<length>`
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der <length>
CSS Datentyp repräsentiert einen Distanzwert. Längen können in zahlreichen CSS-Eigenschaften verwendet werden, wie width
, height
, margin
, padding
, border-width
, font-size
und text-shadow
.
Hinweis:
Obwohl <percentage>
-Werte in einigen derselben Eigenschaften verwendet werden können, die <length>
-Werte akzeptieren, sind sie keine <length>
-Werte. Siehe <length-percentage>
.
Syntax
Der <length>
-Datentyp besteht aus einer <number>
, gefolgt von einer der unten aufgeführten Einheiten. Wie bei allen CSS-Dimensionen gibt es keinen Leerraum zwischen der Zahl und dem Einheitenliteral. Die Angabe der Längeneinheit ist optional, wenn die Zahl 0
ist.
Hinweis:
Einige Eigenschaften erlauben negative <length>
-Werte, während andere dies nicht tun.
Der angegebene Wert einer Länge (angegebene Länge) wird durch seine Menge und Einheit dargestellt. Der berechnete Wert einer Länge (berechnete Länge) ist die angegebene Länge, auf eine absolute Länge aufgelöst, und seine Einheit wird nicht unterschieden.
Die <length>
-Einheiten können relativ oder absolut sein. Relative Längen stellen eine Messung in Bezug auf eine andere Distanz dar. Abhängig von der Einheit kann diese Distanz die Größe eines bestimmten Zeichens, die Zeilenhöhe oder die Größe des Viewports sein. Stylesheets, die relative Längeneinheiten verwenden, können leichter von einer Ausgabetumgebung zu einer anderen skaliert werden.
Hinweis: Kindelemente erben nicht die relativen Werte, wie sie für ihr Elternelement festgelegt wurden; sie erben die berechneten Werte.
Relative Längeneinheiten
CSS relative Längeneinheiten basieren auf Schriftartgrößen, Containergrößen oder Viewport-Größen.
Relative Längeneinheiten basierend auf der Schriftart
Schriftlängen definieren den <length>
-Wert in Bezug auf die Größe eines bestimmten Zeichens oder Schriftattributs in der aktuell wirksamen Schriftart in einem Element oder seinem Elternteil.
Hinweis:
Diese Einheiten, insbesondere em
und das wurzelrelativ rem
, werden oft verwendet, um skalierbare Layouts zu erstellen, die den vertikalen Rhythmus der Seite auch dann beibehalten, wenn der Benutzer die Schriftgröße ändert.
cap
-
Repräsentiert die "Cap-Höhe" (nominale Höhe von Großbuchstaben) der
font
des Elements. ch
-
Repräsentiert die Breite oder, genauer gesagt, das advance measure des Glyphs
0
(Null, das Unicode-Zeichen U+0030) in derfont
des Elements. In Fällen, in denen die Bestimmung der Maßnahme des0
-Glyphs unmöglich oder unpraktisch ist, muss angenommen werden, dass es0.5em
breit und1em
hoch ist. em
-
Repräsentiert die berechnete
font-size
des Elements. Wenn es bei derfont-size
-Eigenschaft selbst verwendet wird, repräsentiert es die geerbte Schriftgröße des Elements. ex
-
Repräsentiert die x-Höhe der
font
des Elements. In Schriften mit demx
-Buchstaben ist dies im Allgemeinen die Höhe der Kleinbuchstaben in der Schriftart;1ex ≈ 0.5em
in vielen Schriften. ic
-
Entspricht dem verwendeten advance measure des "水"-Glyphs (CJK-Wasser-Ideogramm, U+6C34), das in der Schriftart gefunden wird, die es rendert.
lh
-
Entspricht dem berechneten Wert der
line-height
-Eigenschaft des Elements, auf dem es verwendet wird, umgerechnet auf eine absolute Länge. Diese Einheit ermöglicht Längenberechnungen basierend auf der theoretischen Größe einer idealen leeren Zeile. Die Größe tatsächlicher Zeilenboxen kann jedoch je nach Inhalt variieren.
Relative Längeneinheiten basierend auf der Schrift des Wurzelelements
Wurzelelement-Schrift-relativ Längeneinheiten definieren den <length>
-Wert in Bezug auf die Größe eines bestimmten Zeichens oder Schriftattributs des root-Elements:
rcap
-
Entspricht der "Cap-Höhe" (nominale Höhe von Großbuchstaben) der
font
des Wurzelelements. rch
-
Entspricht der Breite oder dem advance measure des Glyphs
0
(Null, das Unicode-Zeichen U+0030) in derfont
des Wurzelelements. rem
-
Repräsentiert die
font-size
des Wurzelelements (typischerweise<html>
). Wenn es innerhalb der Wurzelelement-font-size
verwendet wird, repräsentiert es dessen Anfangswert. Ein typischer Browser-Standardwert ist16px
, aber benutzerdefinierte Präferenzen können dies ändern. rex
-
Repräsentiert die x-Höhe der
font
des Wurzelelements. ric
-
Entspricht dem Wert der
ic
-Einheit auf dem Wurzelelement. rlh
-
Entspricht dem Wert der
lh
-Einheit auf dem Wurzelelement. Diese Einheit ermöglicht Längenberechnungen basierend auf der theoretischen Größe einer idealen leeren Zeile. Die Größe tatsächlicher Zeilenboxen kann jedoch je nach Inhalt variieren.
Relative Längeneinheiten basierend auf dem Viewport
Die Viewport-Prozentsatz-Längeneinheiten basieren auf vier verschiedenen Viewport-Größen: klein, groß, dynamisch und Standard. Die Zulassung für die verschiedenen Viewport-Größen erfolgt als Reaktion auf dynamisch expandierende und zurückziehende Browser-Schnittstellen, die Inhalte darunter ein- und ausblenden.
- Klein
-
Wenn Sie die kleinstmögliche Viewport-Größe in Reaktion auf dynamisch expandierende Browser-Schnittstellen wünschen, sollten Sie die kleine Viewport-Größe verwenden. Die kleine Viewport-Größe ermöglicht es den von Ihnen gestalteten Inhalten, den gesamten Viewport zu füllen, wenn die Browser-Schnittstellen erweitert werden. Die Wahl dieser Größe kann möglicherweise auch leere Räume lassen, wenn die Browser-Schnittstellen zurückgezogen werden.
Zum Beispiel wird ein Element, das mit Viewport-Prozentsatz-Einheiten basierend auf der kleinen Viewport-Größe dimensioniert ist, den Bildschirm perfekt füllen, ohne dass einer seiner Inhalte verdeckt wird, wenn alle dynamischen Browser-Schnittstellen angezeigt werden. Wenn diese Browser-Schnittstellen jedoch versteckt sind, könnte zusätzlicher Platz um das Element sichtbar sein. Daher sind die kleinen Viewport-Prozentsatz-Einheiten im Allgemeinen "sicherer" zu verwenden, könnten jedoch nicht das attraktivste Layout erzeugen, nachdem ein Benutzer angefangen hat, mit der Seite zu interagieren.
Die kleine Viewport-Größe wird durch das Präfix
sv
dargestellt und resultiert in densv*
Viewport-Prozentsatz-Längeneinheiten. Die Größen der kleinen Viewport-Prozentsatz-Einheiten sind fest und daher stabil, es sei denn, der Viewport selbst wird angepasst. - Groß
-
Wenn Sie die größtmögliche Viewport-Größe in Reaktion auf dynamisch zurückziehende Browser-Schnittstellen wünschen, sollten Sie die große Viewport-Größe verwenden. Die große Viewport-Größe ermöglicht es den von Ihnen gestalteten Inhalten, den gesamten Viewport zu füllen, wenn die Browser-Schnittstellen zurückgezogen werden. Sie müssen sich bewusst sein, dass Inhalte möglicherweise versteckt werden, wenn die Browser-Schnittstellen erweitert werden.
Zum Beispiel auf Mobiltelefonen, wo der Bildschirmplatz begrenzt ist, verbergen Browser oft einen Teil oder die gesamte Titel- und Adressleiste, nachdem ein Benutzer angefangen hat, die Seite zu scrollen. Wenn ein Element mit einer Viewport-Prozentsatz-Einheit basierend auf der großen Viewport-Größe dimensioniert ist, werden die Inhalte des Elements die gesamte sichtbare Seite füllen, wenn diese Browser-Schnittstellen verborgen sind. Wenn diese einziehbaren Browser-Schnittstellen jedoch angezeigt werden, können sie den Inhalte verdecken, der mit den großen Viewport-Prozentsatz-Einheiten dimensioniert oder positioniert wurde.
Die große Viewport-Einheit wird durch das Präfix
lv
dargestellt und resultiert in denlv*
Viewport-Prozentsatz-Einheiten. Die Größen der großen Viewport-Prozentsatz-Einheiten sind fest und daher stabil, es sei denn, der Viewport selbst wird angepasst. - Dynamisch
-
Wenn Sie möchten, dass der Viewport automatisch angepasst wird als Reaktion auf dynamisch erweiternde oder zurückziehende Browser-Schnittstellen, können Sie die dynamische Viewport-Größe verwenden. Die dynamische Viewport-Größe ermöglicht es den von Ihnen gestalteten Inhalten, genau innerhalb des Viewports zu passen, unabhängig von der Anwesenheit dynamischer Browser-Schnittstellen.
Die dynamische Viewport-Einheit wird durch das Präfix
dv
dargestellt und resultiert in dendv*
Viewport-Prozentsatz-Einheiten. Die Größen der dynamischen Viewport-Prozentsatz-Einheiten sind nicht stabil, selbst wenn der Viewport selbst unverändert bleibt.Hinweis: Während die dynamische Viewport-Größe Ihnen mehr Kontrolle und Flexibilität geben kann, kann die Verwendung von Viewport-Prozentsatz-Einheiten basierend auf der dynamischen Viewport-Größe dazu führen, dass sich die Inhalte in der Größe ändern, während ein Benutzer eine Seite scrollt. Dies kann die Benutzeroberfläche verschlechtern und zu Leistungseinbußen führen.
- Standard
-
Die Standard-Viewport-Größe wird vom Browser definiert. Das Verhalten der resultierenden Viewport-Prozentsatz-Einheit könnte dem der Viewport-Prozentsatz-Einheit basierend auf der kleinen Viewport-Größe, der großen Viewport-Größe, einer Zwischengröße zwischen den beiden oder der dynamischen Viewport-Größe entsprechen.
Hinweis: Zum Beispiel könnte ein Browser die Standard-Viewport-Prozentsatz-Einheit für die Höhe (
vh
) implementieren, die der großen Viewport-Prozentsatz-Höhen-Einheit (lvh
) entspricht. Wenn ja, könnte dies Inhalte bei einer Vollbildanzeige verdecken, während die Browser-Schnittstelle erweitert wird.
Viewport-Prozentsatz-Längen definieren <length>
-Werte in Prozent relativ zur Größe des initialen enthältenden Blocks, die ihrerseits auf die Größe des Viewports oder den Seitenerstellungsbereich, d.h. den sichtbaren Teil des Dokuments, basieren. Wenn die Höhe oder Breite des initialen enthältenden Blocks geändert wird, werden die Elemente, die darauf basieren, entsprechend skaliert. Es gibt eine Viewport-Prozentsatz-Längeneinheit-Variante, die jeder der beschriebenen Viewports-Größen entspricht.
Hinweis:
Viewport-Längen sind ungültig in @page
Deklarationsblöcken.
vh
-
Repräsentiert einen Prozentsatz der Höhe des Viewports initialen enthältenden Blocks.
1vh
entspricht 1% der Viewport-Höhe. Zum Beispiel, wenn die Viewport-Höhe300px
ist, dann wird ein Wert von70vh
bei einer Eigenschaft210px
sein.Die entsprechenden Viewport-Prozentsatz-Einheiten für kleine, große und dynamische Viewport-Größen sind
svh
,lvh
unddvh
.vh
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers. vw
-
Repräsentiert einen Prozentsatz der Breite des Viewports initialen enthältenden Blocks.
1vw
ist 1% der Viewport-Breite. Zum Beispiel, wenn die Viewport-Breite800px
ist, dann wird ein Wert von50vw
bei einer Eigenschaft400px
sein.Bei kleinen, großen und dynamischen Viewport-Größen sind die entsprechenden Viewport-Prozentsatz-Einheiten
svw
,lvw
unddvw
.vw
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers. vmax
-
Repräsentiert prozentual den größten von
vw
undvh
.Bei kleinen, großen und dynamischen Viewport-Größen sind die entsprechenden Viewport-Prozentsatz-Einheiten
svmax
,lvmax
unddvmax
.vmax
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers. vmin
-
Repräsentiert prozentual den kleinsten von
vw
undvh
.Bei kleinen, großen und dynamischen Viewport-Größen sind die entsprechenden Viewport-Prozentsatz-Einheiten
svmin
,lvmin
unddvmin
.vmin
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers. vb
-
Repräsentiert den Prozentsatz der Größe des initialen enthältenden Blocks, in der Richtung der Blockachse des Wurzelelements.
Bei kleinen, großen und dynamischen Viewport-Größen sind die entsprechenden Viewport-Prozentsatz-Einheiten
svb
,lvb
unddvb
.vb
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers. vi
-
Repräsentiert einen Prozentsatz der Größe des initialen enthältenden Blocks, in der Richtung der Inlineachse des Wurzelelements.
Bei kleinen, großen und dynamischen Viewport-Größen sind die entsprechenden Viewport-Prozentsatz-Einheiten
svi
,lvi
unddvi
.vi
repräsentiert die Viewport-Prozentsatz-Längeneinheit basierend auf der Standard-Viewport-Größe des Browsers.
Container Query Längeneinheiten
Beim Anwenden von Styles auf einen Container mit Container-Anfragen können Sie Container-Query-Längeneinheiten verwenden. Diese Einheiten spezifizieren eine Länge relativ zu den Dimensionen eines Abfragecontainers. Komponenten, die Längeneinheiten relativ zu ihrem Container verwenden, sind flexibler in verschiedenen Containern verwendbar, ohne dass konkrete Längenwerte neu berechnet werden müssen. Für mehr Informationen siehe Container-Anfragen.
cqw
-
Repräsentiert einen Prozentsatz der Breite des Abfragecontainers.
1cqw
ist 1% der Breite des Abfragecontainers. Zum Beispiel, wenn die Breite des Abfragecontainers800px
ist, dann wird ein Wert von50cqw
bei einer Eigenschaft400px
sein. cqh
-
Repräsentiert einen Prozentsatz der Höhe des Abfragecontainers.
1cqh
ist 1% der Höhe des Abfragecontainers. Zum Beispiel, wenn die Höhe des Abfragecontainers300px
ist, dann wird ein Wert von10cqh
bei einer Eigenschaft30px
sein. cqi
-
Repräsentiert einen Prozentsatz der Inline-Größe des Abfragecontainers.
1cqi
ist 1% der Inline-Größe des Abfragecontainers. Zum Beispiel, wenn die Inline-Größe des Abfragecontainers800px
ist, dann wird ein Wert von50cqi
bei einer Eigenschaft400px
sein. cqb
-
Repräsentiert einen Prozentsatz der Blockgröße des Abfragecontainers.
1cqb
ist 1% der Blockgröße des Abfragecontainers. Zum Beispiel, wenn die Blockgröße des Abfragecontainers300px
ist, dann wird ein Wert von10cqb
bei einer Eigenschaft30px
sein. cqmin
-
Repräsentiert einen Prozentsatz des kleineren Wertes entweder der Inline-Größe oder der Blockgröße des Abfragecontainers.
1cqmin
ist 1% des kleineren Wertes entweder der Inline-Größe oder der Blockgröße des Abfragecontainers. Zum Beispiel, wenn die Inline-Größe des Abfragecontainers800px
und seine Blockgröße300px
ist, dann wird ein Wert von50cqmin
bei einer Eigenschaft150px
sein. cqmax
-
Repräsentiert einen Prozentsatz des größeren Wertes entweder der Inline-Größe oder der Blockgröße des Abfragecontainers.
1cqmax
ist 1% des größeren Wertes entweder der Inline-Größe oder der Blockgröße des Abfragecontainers. Zum Beispiel, wenn die Inline-Größe des Abfragecontainers800px
und seine Blockgröße300px
ist, dann wird ein Wert von50cqmax
bei einer Eigenschaft400px
sein.
Absolute Längeneinheiten
Absolute Längeneinheiten repräsentieren eine physische Messung, wenn die physikalischen Eigenschaften des Ausgabemediums bekannt sind, wie beispielsweise beim Drucklayout. Dies geschieht, indem eine der Einheiten an eine physische Einheit gebunden wird und dann die anderen relativ dazu definiert werden. Die Verankerung erfolgt unterschiedlich für Geräte mit niedriger Auflösung, wie Bildschirme, gegenüber Geräten mit hoher Auflösung, wie Drucker.
Für Geräte mit niedriger dpi stellt die Einheit px
den physischen Referenzpixel dar; andere Einheiten sind relativ dazu definiert. Daher wird 1in
als 96px
definiert, was 72pt
entspricht. Die Konsequenz dieser Definition ist, dass auf solchen Geräten Maßeinheiten in Zoll (in
), Zentimetern (cm
) oder Millimetern (mm
) nicht unbedingt die gleiche Größe wie die physische Einheit mit demselben Namen haben.
Für Geräte mit hoher dpi sind Zoll (in
), Zentimeter (cm
) und Millimeter (mm
) mit ihren physischen Gegenstücken identisch. Daher wird die Einheit px
relativ zu ihnen definiert (1/96 von 1in
).
Hinweis:
Viele Benutzer vergrößern die Standard-Schriftgröße ihres user agents, um den Text besser lesbar zu machen. Absolute Längen können Barrierefreiheitsprobleme verursachen, da sie fest sind und sich nicht entsprechend den Benutzereinstellungen skalieren. Aus diesem Grund bevorzugen Sie relative Längen (wie em
oder rem
), wenn font-size
eingestellt wird.
px
-
Ein Pixel. Für Bildschirme repräsentiert es traditionell ein Gerätepixel (Punkt). Jedoch impliziert bei Druckern und High-Resolution Screens ein CSS-Pixel mehrere Gerätepixel.
1px
=1in / 96
. cm
-
Ein Zentimeter.
1cm
=96px / 2.54
. mm
-
Ein Millimeter.
1mm
=1cm / 10
. Q
-
Ein Viertel eines Millimeters.
1Q
=1cm / 40
. in
-
Ein Zoll.
1in
=2.54cm
=96px
. pc
-
Eine Pica.
1pc
=12pt
=1in / 6
. pt
-
Ein Punkt.
1pt
=1in / 72
.
Interpolation
Bei der Animation werden Werte des <length>
-Datentyps als reale Gleitkomma-Zahlen interpoliert. Die Interpolation erfolgt am berechneten Wert. Die Geschwindigkeit der Interpolation wird durch die mit der Animation verbundene Easing-Funktion bestimmt.
Beispiele
Vergleich verschiedener Längeeinheiten
Das folgende Beispiel bietet Ihnen ein Eingabefeld, in das Sie einen <length>
-Wert (z. B. 300px
, 50%
, 30vw
) eingeben können, um die Breite einer Ergebnisleiste festzulegen, die unten erscheint, sobald Sie die Enter- oder Return-Taste gedrückt haben.
Dies ermöglicht es Ihnen, die Auswirkungen verschiedener Längeneinheiten zu vergleichen und gegenüberzustellen.
HTML
<div class="outer">
<div class="input-container">
<label for="length">Enter width:</label>
<input type="text" id="length" />
</div>
<div class="inner"></div>
</div>
<div class="results"></div>
CSS
html {
font-family: sans-serif;
font-weight: bold;
box-sizing: border-box;
}
.outer {
width: 100%;
height: 50px;
background-color: #eee;
position: relative;
}
.inner {
height: 50px;
background-color: #999;
box-shadow:
inset 3px 3px 5px rgb(255 255 255 / 50%),
inset -3px -3px 5px rgb(0 0 0 / 50%);
}
.result {
height: 20px;
box-shadow:
inset 3px 3px 5px rgb(255 255 255 / 50%),
inset -3px -3px 5px rgb(0 0 0 / 50%);
background-color: orange;
display: flex;
align-items: center;
margin-top: 10px;
}
.result code {
position: absolute;
margin-left: 20px;
}
.results {
margin-top: 10px;
}
.input-container {
position: absolute;
display: flex;
justify-content: flex-start;
align-items: center;
height: 50px;
}
label {
margin: 0 10px 0 20px;
}
JavaScript
const inputDiv = document.querySelector(".inner");
const inputElem = document.querySelector("input");
const resultsDiv = document.querySelector(".results");
inputElem.addEventListener("change", () => {
inputDiv.style.width = inputElem.value;
const result = document.createElement("div");
result.className = "result";
result.style.width = inputElem.value;
const code = document.createElement("code");
code.textContent = `width: ${inputElem.value}`;
result.appendChild(code);
resultsDiv.appendChild(result);
inputElem.value = "";
inputElem.focus();
});
Ergebnis
Spezifikationen
Specification |
---|
CSS Values and Units Module Level 4 # lengths |
Browser-Kompatibilität
BCD tables only load in the browser