\<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.
* Some parts of this feature may have varying levels of support.
Der <length>
CSS Datentyp repräsentiert einen Distanzwert. Längen können in zahlreichen CSS-Eigenschaften verwendet werden, wie z.B. width
, height
, margin
, padding
, border-width
, font-size
und text-shadow
.
Hinweis:
Obwohl <percentage>
-Werte in einigen der gleichen Eigenschaften verwendbar sind, die <length>
-Werte akzeptieren, sind sie selbst 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 Raum zwischen der Nummer und dem Einheit-Literal. 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 spezifizierte Wert einer Länge (spezifizierte Länge) wird durch ihre Menge und Einheit repräsentiert. Der berechnete Wert einer Länge (berechnete Länge) ist die spezifizierte Länge, die zu einer absoluten Länge aufgelöst wird, und ihre Einheit wird nicht unterschieden.
Die <length>
-Einheiten können relativ oder absolut sein. Relative Längen stellen eine Messung im Verhältnis zu einer anderen Distanz dar. Abhängig von der Einheit kann diese Distanz die Größe eines bestimmten Zeichens, die Zeilenhöhe oder die Größe des Ansichtsfensters sein. Stylesheets, die relative Längeneinheiten verwenden, können leichter von einer Ausgabenumgebung zur anderen skaliert werden.
Hinweis: Kindelemente erben nicht die relativen Werte, wie für ihr übergeordnetes Element spezifiziert; sie erben die berechneten Werte.
Relative Längeneinheiten
CSS-relative Längeneinheiten basieren auf Schrift-, Container- oder Ansichtsfenstergrößen.
Relative Längeneinheiten basierend auf Schrift
Schriftlängen definieren den <length>
-Wert in Bezug auf die Größe eines bestimmten Zeichens oder Schriftattributs in der aktuell in einem Element oder seinem übergeordneten Element geltenden Schrift.
Hinweis:
Diese Einheiten, insbesondere em
und das wurzelverwandte rem
, werden häufig verwendet, um skalierbare Layouts zu erstellen, die den vertikalen Rhythmus der Seite beibehalten, selbst wenn der Benutzer die Schriftgröße ändert.
cap
-
Repräsentiert die "Kappenhöhe" (nominale Höhe der Großbuchstaben) der Schrift des Elements
font
. ch
-
Repräsentiert die Breite oder, genauer gesagt, das Voranschrittmaß des Glyphen
0
(Null, das Unicode-Zeichen U+0030) in der Schrift des Elementsfont
. In Fällen, in denen die Bestimmung des Maßes des0
-Glyphen unmöglich oder unpraktisch ist, muss angenommen werden, dass es0.5em
breit bei1em
Höhe ist. em
-
Repräsentiert die berechnete
font-size
des Elements. Wenn es auf derfont-size
-Eigenschaft selbst verwendet wird, repräsentiert es die geerbte Schriftgröße des Elements. ex
-
Repräsentiert die x-Höhe der Schrift des Elements
font
. In Schriften mit dem Buchstabenx
ist dies im Allgemeinen die Höhe der Kleinbuchstaben in der Schrift;1ex ≈ 0.5em
in vielen Schriften. ic
-
Entspricht dem verwendeten Voranschrittmaß des "水"-Glyphen (CJK Wasser-Ideograph, U+6C34), das in der Schrift verwendet wird, um es darzustellen.
lh
-
Entspricht dem berechneten Wert der
line-height
-Eigenschaft des Elements, auf dem es verwendet wird, konvertiert in 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 Zeilenkästen kann jedoch je nach Inhalt variieren.
Relative Längeneinheiten basierend auf dem Schriftgrad des Wurzelelements
Schriftzeichen-relativ zum Wurzelelement Längeneinheiten definieren den <length>
-Wert in Bezug auf die Größe eines bestimmten Zeichens oder Schriftattributs des Wurzel- Elements:
rcap
-
Entspricht der "Kappenhöhe" (nominale Höhe der Großbuchstaben) der Schrift des Wurzelelements
font
. rch
-
Entspricht der Breite oder dem Voranschrittmaß des Glyphen
0
(Null, das Unicode-Zeichen U+0030) in der Schrift des Wurzelelementsfont
. rem
-
Repräsentiert die
font-size
des Wurzelelements (typischerweise<html>
). Wenn es innerhalb der Schriftgröße des Wurzelelementsfont-size
verwendet wird, stellt es den ursprünglichen Wert dar. Ein üblicher Standardwert der Browser ist16px
, aber benutzerdefinierte Präferenzen können diese ändern. rex
-
Repräsentiert die x-Höhe der Schrift des Wurzelelements
font
. ric
-
Entspricht dem Wert der
ic
Einheit in der Schrift des Wurzelelements. rlh
-
Entspricht dem Wert der
lh
Einheit in der Schrift des Wurzelelements. Diese Einheit ermöglicht Längenberechnungen basierend auf der theoretischen Größe einer idealen leeren Zeile. Die Größe tatsächlicher Zeilenkästen kann jedoch je nach Inhalt variieren.
Relative Längeneinheiten basierend auf dem Ansichtsfenster
Die Ansichtsfenster-Prozentlängeneinheiten basieren auf vier verschiedenen Ansichtsfenstergrößen: klein, groß, dynamisch und Standard. Die Berücksichtigung der unterschiedlichen Ansichtsfenstergrößen reagiert auf dynamisch erweiternde und einziehende Browser-Oberflächen sowie auf das Verbergen und Anzeigen des darunterliegenden Inhalts.
- Kleine Ansichtsfenstereinheiten
-
Wenn Sie das kleinstmögliche Ansichtsfenster in Reaktion auf dynamisch erweiternde Browser-Oberflächen wünschen, sollten Sie die kleine Ansichtsfenstergröße verwenden. Die kleine Ansichtsfenstergröße ermöglicht, dass der von Ihnen gestaltete Inhalt das gesamte Ansichtsfenster ausfüllt, wenn die Browser-Oberflächen erweitert sind. Die Wahl dieser Größe kann möglicherweise auch leere Räume hinterlassen, wenn die Browser-Oberflächen wieder eingezogen werden.
Zum Beispiel wird ein mit einem anhand der kleinen Ansichtsfenstergröße bemessenen Ansichtsfenster-Prozentwert bemessenes Element den Bildschirm perfekt ausfüllen, ohne dass ein Teil seines Inhalts verdeckt wird, wenn alle dynamischen Browser-Oberflächen angezeigt werden. Wenn jedoch diese Browser-Oberflächen ausgeblendet sind, kann jedoch zusätzlicher Raum um das Element sichtbar werden. Die kleinen Ansichtsfenster-Prozent-Werte sind daher allgemein "sicherer" zu verwenden, erzeugen jedoch möglicherweise kein ansprechendstes Layout, nachdem ein Benutzer mit der Seite zu interagieren begonnen hat.
Die kleine Ansichtsfenstergröße wird durch das
sv
-Präfix repräsentiert und resultiert in densv*
Ansichtsfenster-Prozentlängen-Einheiten. Die Größen der kleinen Ansichtsfenster-Prozent-Einheiten sind fest und daher stabil, es sei denn, das Ansichtsfenster selbst wird geändert. - Große Ansichtsfenstereinheiten
-
Wenn Sie das größtmögliche Ansichtsfenster in Antwort auf dynamisch einziehende Browser-Oberflächen wünschen, sollten Sie die große Ansichtsfenstergröße verwenden. Die große Ansichtsfenstergröße ermöglicht, dass der von Ihnen gestaltete Inhalt das gesamte Ansichtsfenster ausfüllt, wenn die Browser-Oberflächen eingezogen sind. Sie müssen beachten, dass der Inhalt verborgen werden könnte, wenn die Browser-Oberflächen erweitert werden.
Zum Beispiel auf Mobiltelefonen, bei denen Bildschirmplatz kostbar ist, verbergen Browser oft einen Teil oder das gesamte Titel- und Adressfeld, nachdem ein Benutzer begonnen hat, auf der Seite zu scrollen. Wenn ein Element mit einer auf der großen Ansichtsfenstergröße basierenden Ansichtsfenster-Prozent-Einheit bemessen wird, wird der Inhalt des Elements die gesamte sichtbare Seite ausfüllen, wenn diese wieder einziehbaren Browser-Oberflächen verborgen sind. Wenn diese jedoch angezeigt werden, können sie den Inhalt überdecken, der mit diesen großen Ansichtsfenster-Prozent-Einheiten bemessen oder positioniert ist.
Die große Ansichtsfenstereinheit wird durch das
lv
-Präfix repräsentiert und resultiert in denlv*
Ansichtsfenster-Prozent-Einheiten. Die Größen der großen Ansichtsfenster-Prozent-Einheiten sind fest und daher stabil, es sei denn, das Ansichtsfenster selbst wird geändert. - Dynamische Ansichtsfenstereinheiten
-
Wenn Sie möchten, dass das Ansichtsfenster automatisch in Reaktion auf dynamisch erweiternde oder einziehende Browser-Oberflächen bemessen wird, können Sie die dynamische Ansichtsfenstergröße verwenden. Die dynamische Ansichtsfenstergröße ermöglicht es, dass der von Ihnen gestaltete Inhalt genau in das Ansichtsfenster passt, unabhängig vom Vorhandensein dynamischer Browser-Oberflächen.
Die dynamische Ansichtsfenstereinheit wird durch das
dv
-Präfix repräsentiert und resultiert in dendv*
Ansichtsfenster-Prozent-Einheiten. Die Größen der dynamischen Ansichtsfenster-Prozent-Einheiten sind nicht stabil, selbst wenn das Ansichtsfenster selbst unverändert bleibt.Hinweis: Während die dynamische Ansichtsfenstergröße Ihnen mehr Kontrolle und Flexibilität geben kann, kann die Verwendung von Ansichtsfenster-Prozent-Einheiten basierend auf der dynamischen Ansichtsfenstergröße dazu führen, dass sich der Inhalt während des Scrollens einer Seite durch den Benutzer ändert. Dies kann die Benutzeroberfläche verschlechtern und zu einem Leistungseinbruch führen.
- Standard-Ansichtsfenstereinheiten
-
Die Standard-Ansichtsfenstergröße wird vom Browser definiert. Das Verhalten der resultierenden Ansichtsfenster-Prozent-Einheit könnte äquivalent zur Ansichtsfenster-Prozent-Einheit basierend auf der kleinen Ansichtsfenstergröße, der großen Ansichtsfenstergröße, einer Zwischengröße zwischen beiden oder der dynamischen Ansichtsfenstergröße sein.
Hinweis: Zum Beispiel könnte ein Browser die Standard-Ansichtsfenster-Prozent-Einheit für die Höhe (
vh
) implementieren, die der großen Ansichtsfenster-Prozent-Höhen-Einheit (lvh
) entspricht. Wenn dem so ist, könnte dies den Inhalt auf einer Vollseitenanzeige verdecken, während die Browser-Oberfläche erweitert ist. Derzeit sind alle Standard-Ansichtsfenstereinheiten (vh
,vw
, etc.) gleichwertig zu ihren großen Ansichtsfenster-Gegenstücken (lvh
,lvw
, etc.).
Ansichtsfenster-Prozentsätze definieren <length>
-Werte in Prozent relativ zur Größe des initialen Umfassungsblocks, der wiederum auf der Größe des Ansichtsfensters oder des Seitenbereichs basiert, d.h. dem sichtbaren Teil des Dokuments. Wenn die Höhe oder Breite des initialen Umfassungsblocks geändert wird, werden die darauf basierten Elemente entsprechend skaliert. Es gibt für jede der Ansichtsfenstergrößen eine Ansichtsfenster-Prozentlängen-Einheitsvariante, wie nachfolgend beschrieben.
Hinweis:
Ansichtsfenster-Längen sind in @page
-Deklarationsblöcken ungültig.
vh
-
Repräsentiert einen Prozentsatz der Höhe des initialen Umfassungsblocks des Ansichtsfensters.
1vh
ist 1% der Ansichtsfensterhöhe. Wenn beispielsweise die Ansichtsfensterhöhe300px
beträgt, dann ist ein Wert von70vh
auf einer Eigenschaft210px
.Die entsprechenden Ansichtsfenster-Prozent-Einheiten für kleine, große und dynamische Ansichtsfenstergrößen sind
svh
,lvh
unddvh
.vh
ist gleichwertig zulvh
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert. vw
-
Repräsentiert einen Prozentsatz der Breite des initialen Umfassungsblocks des Ansichtsfensters.
1vw
ist 1% der Ansichtsfensterbreite. Wenn beispielsweise die Ansichtsfensterbreite800px
beträgt, dann ist ein Wert von50vw
auf einer Eigenschaft400px
.Für kleine, große und dynamische Ansichtsfenstergrößen sind die entsprechenden Ansichtsfenster-Prozent-Einheiten
svw
,lvw
unddvw
.vw
ist gleichwertig zulvw
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert. vmax
-
Repräsentiert prozentual die größte von
vw
undvh
.Für kleine, große und dynamische Ansichtsfenstergrößen sind die entsprechenden Ansichtsfenster-Prozent-Einheiten
svmax
,lvmax
unddvmax
.vmax
ist gleichwertig zulvmax
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert. vmin
-
Repräsentiert prozentual die kleinste von
vw
undvh
.Für kleine, große und dynamische Ansichtsfenstergrößen sind die entsprechenden Ansichtsfenster-Prozent-Einheiten
svmin
,lvmin
unddvmin
.vmin
ist gleichwertig zulvmin
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert. vb
-
Repräsentiert den Prozentsatz der Größe des initialen Umfassungsblocks in der Richtung der Blockachse des Wurzelelements.
Für kleine, große und dynamische Ansichtsfenstergrößen sind die entsprechenden Ansichtsfenster-Prozent-Einheiten
svb
,lvb
unddvb
.vb
ist gleichwertig zulvb
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert. vi
-
Repräsentiert einen Prozentsatz der Größe des initialen Umfassungsblocks in der Richtung der Inlineachse des Wurzelelements.
Für kleine, große und dynamische Ansichtsfenstergrößen sind die entsprechenden Ansichtsfenster-Prozent-Einheiten
svi
,lvi
unddvi
.vi
ist gleichwertig zulvi
, was die Ansichtsfenster-Prozentlängeneinheit basierend auf der großen Ansichtsfenstergröße repräsentiert.
Containerabfrage-Längeneinheiten
Bei der Anwendung von Stilen auf einen Container unter Verwendung von Containerabfragen können Containerabfrage-Längeneinheiten verwendet werden. Diese Einheiten spezifizieren eine Länge relativ zu den Dimensionen eines Abfragecontainers. Komponenten, die Einheiten einer Länge relativ zu ihrem Container verwenden, sind flexibler in verschiedenen Containern einsetzbar, ohne konkrete Längenwerte neu berechnen zu müssen.
Wenn kein geeigneter Container für die Abfrage verfügbar ist, fällt die Containerabfrage-Längeneinheit standardmäßig auf die kleine Ansichtsfenstereinheit für diese Achse (sv*
) zurück.
Weitere Informationen finden Sie unter Containerabfragen.
cqw
-
Repräsentiert einen Prozentsatz der Breite des Abfragecontainers.
1cqw
ist 1% der Breite des Abfragecontainers. Wenn z.B. die Breite des Abfragecontainers800px
beträgt, dann wird ein Wert von50cqw
auf einer Eigenschaft400px
sein. cqh
-
Repräsentiert einen Prozentsatz der Höhe des Abfragecontainers.
1cqh
ist 1% der Höhe des Abfragecontainers. Wenn z.B. die Höhe des Abfragecontainers300px
beträgt, dann wird ein Wert von10cqh
auf einer Eigenschaft30px
sein. cqi
-
Repräsentiert einen Prozentsatz der Inline-Größe des Abfragecontainers.
1cqi
ist 1% der Inline-Größe des Abfragecontainers. Wenn z.B. die Inline-Größe des Abfragecontainers800px
beträgt, dann wird ein Wert von50cqi
auf einer Eigenschaft400px
sein. cqb
-
Repräsentiert einen Prozentsatz der Blockgröße des Abfragecontainers.
1cqb
ist 1% der Blockgröße des Abfragecontainers. Wenn z.B. die Blockgröße des Abfragecontainers300px
beträgt, dann wird ein Wert von10cqb
auf einer Eigenschaft30px
sein. cqmin
-
Repräsentiert einen Prozentsatz des kleineren Werts entweder der Inline-Größe oder der Blockgröße des Abfragecontainers.
1cqmin
ist 1% des kleineren Werts entweder der Inline-Größe oder der Blockgröße des Abfragecontainers. Wenn z.B. die Inline-Größe des Abfragecontainers800px
und seine Blockgröße300px
beträgt, dann wird ein Wert von50cqmin
auf einer Eigenschaft150px
sein. cqmax
-
Repräsentiert einen Prozentsatz des größeren Werts entweder der Inline-Größe oder der Blockgröße des Abfragecontainers.
1cqmax
ist 1% des größeren Werts entweder der Inline-Größe oder der Blockgröße des Abfragecontainers. Wenn z.B. die Inline-Größe des Abfragecontainers800px
und seine Blockgröße300px
beträgt, dann wird ein Wert von50cqmax
auf einer Eigenschaft400px
sein.
Absolute Längeneinheiten
Absolute Längeneinheiten repräsentieren eine physische Messung, wenn die physikalischen Eigenschaften des Ausgabemediums bekannt sind, z.B. für Drucklayouts. Dies wird erreicht, indem eine der Einheiten an eine physische Einheit oder die visuelle Winkelgröße verankert und die anderen relativ dazu definiert werden. Physische Einheiten umfassen cm
, in
, mm
, pc
, pt
, px
und Q
. Die Verankerung erfolgt unterschiedlich für Geräte mit niedriger Auflösung, wie Bildschirme, im Vergleich zu Geräten mit hoher Auflösung, wie Druckern.
Für Geräte mit niedriger DPI repräsentiert die Einheit px
das physische Referenzpixel; andere Einheiten sind relativ dazu definiert. So wird 1in
als 96px
definiert, was 72pt
entspricht. Die Konsequenz dieser Definition ist, dass auf solchen Geräten die in Zoll (in
), Zentimeter (cm
) oder Millimeter (mm
) beschriebenen Dimensionen nicht unbedingt der Größe der physischen Einheit mit demselben Namen entsprechen.
Für Geräte mit hoher DPI sind Zoll (in
), Zentimeter (cm
) und Millimeter (mm
) dieselben wie ihre physischen Gegenstücke. Daher wird die Einheit px
relativ zu ihnen definiert (1/96 von 1in
).
Hinweis:
Viele Benutzer erhöhen die standardmäßige Schriftgröße ihrer User-Agent, um den Text lesbarer zu machen. Absolute Längen können Zugänglichkeitsprobleme verursachen, da sie fest sind und sich nicht nach Benutzereinstellungen skalieren. Aus diesem Grund sollten Sie relative Längen (wie em
oder rem
) bevorzugen, wenn Sie die font-size
einstellen.
px
-
Ein Pixel. Für Bildschirmanzeigen repräsentiert es traditionell ein Gerätepixel (Punkt). Allerdings bedeutet dies für Drucker und Bildschirme mit hoher Auflösung, dass ein CSS-Pixel mehrere Gerätepixel impliziert.
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
-
Ein Pica.
1pc
=12pt
=1in / 6
. pt
-
Ein Punkt.
1pt
=1in / 72
.
Interpolation
Bei Animationen werden Werte des <length>
-Datentyps als reelle, gleitkommagenaue Zahlen interpoliert. Die Interpolation erfolgt auf dem berechneten Wert. Die Geschwindigkeit der Interpolation wird durch die Easing-Funktion bestimmt, die der Animation zugeordnet ist.
Beispiele
Vergleich verschiedener Längeneinheiten
Das folgende Beispiel bietet Ihnen ein Eingabefeld, in dem Sie einen <length>
-Wert eingeben können (z.B. 300px
, 50%
, 30vw
), um die Breite eines Ergebnisbalkens festzulegen, der unterhalb erscheint, sobald Sie die Enter oder die Return-Taste gedrückt haben.
Dies ermöglicht es Ihnen, die Effekte unterschiedlicher 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 |