round()
Baseline 2024Newly available
Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die round()
CSS Funktion gibt eine gerundete Zahl basierend auf einer ausgewählten Rundungsstrategie zurück.
Autoren sollten eine benutzerdefinierte CSS-Eigenschaft (z.B. --my-property
) für den Rundungswert, das Intervall oder beides verwenden. Die Verwendung der round()
-Funktion ist überflüssig, wenn diese bekannte Werte haben.
Syntax
width: round(var(--width), 50px);
width: round(up, 101px, var(--interval));
width: round(down, var(--height), var(--interval));
margin: round(to-zero, -105px, 10px);
Parameter
Die round(<rounding-strategy>, valueToRound, roundingInterval)
Funktion spezifiziert eine optionale Rundungsstrategie, einen zu rundenden Wert (oder mathematischen Ausdruck) und ein Rundungsintervall (oder mathematischen Ausdruck).
Der valueToRound
wird gemäß der Rundungsstrategie auf das nächstgelegene ganzzahlige Vielfache von roundingInterval
gerundet.
<rounding-strategy>
-
Die Rundungsstrategie. Diese kann einer der folgenden Werte sein:
up
-
Rundet
valueToRound
auf das nächstgelegene ganzzahlige Vielfache vonroundingInterval
nach oben (wenn der Wert negativ ist, wird er "mehr positiv"). Dies entspricht der JavaScript-MethodeMath.ceil()
. down
-
Rundet
valueToRound
auf das nächstgelegene ganzzahlige Vielfache vonroundingInterval
nach unten (wenn der Wert negativ ist, wird er "mehr negativ"). Dies entspricht der JavaScript-MethodeMath.floor()
. nearest
(Standard)-
Rundet
valueToRound
auf das nächstgelegene ganzzahlige Vielfache vonroundingInterval
, das entweder obendrauf oder darunter liegen kann. IstvalueToRound
genau zwischen den Rundungszielen oben und unten, wird er nach oben gerundet. Entspricht JavaScriptMath.round()
. to-zero
-
Rundet
valueToRound
auf das nächstgelegene ganzzahlige Vielfache vonroundingInterval
, das näher an null liegt (eine positive Zahl wird kleiner, während ein negativer Wert "weniger negativ" wird). Dies entspricht der JavaScript-MethodeMath.trunc()
.
valueToRound
-
Der zu rundende Wert. Dies muss eine
<number>
,<dimension>
, oder<percentage>
sein, oder ein mathematischer Ausdruck, der sich zu einem dieser Werte auflöst. roundingInterval
-
Das Rundungsintervall. Dies ist eine
<number>
,<dimension>
, oder<percentage>
, oder ein mathematischer Ausdruck, der sich zu einem dieser Werte auflöst. WennvalueToRound
eine<number>
ist, kannroundingInterval
weggelassen werden und standardmäßig auf1
gesetzt werden. Ansonsten führt das Weglassen zu einem ungültigen Ausdruck.
Rückgabewert
Der Wert von valueToRound
, gerundet auf das nächstgelegene niedrigere oder höhere ganze Vielfache von roundingInterval
, je nach Rundungsstrategie.
-
Wenn
roundingInterval
0 ist, ist das ErgebnisNaN
. -
Wenn
valueToRound
undroundingInterval
beide unendlich sind, ist das ErgebnisNaN
. -
Wenn
valueToRound
unendlich ist, aberroundingInterval
endlich, ist das Ergebnis das gleicheUnendlich
. -
Wenn
valueToRound
endlich ist, aberroundingInterval
unendlich, hängt das Ergebnis von der Rundungsstrategie und dem Vorzeichen vonA
ab:up
- WennvalueToRound
positiv ist (nicht null), wird+∞
zurückgegeben. WennvalueToRound
0⁺
ist, wird0⁺
zurückgegeben. Andernfalls wird0⁻
zurückgegeben.down
- WennvalueToRound
negativ ist (nicht null), wird−∞
zurückgegeben. WennvalueToRound
0⁻
ist, wird0⁻
zurückgegeben. Andernfalls wird0⁺
zurückgegeben.nearest
,to-zero
- WennvalueToRound
positiv oder0⁺
ist, wird0⁺
zurückgegeben. Andernfalls wird0⁻
zurückgegeben.
-
Die Berechnungen der Argumente können sich zu
<number>
,<dimension>
, oder<percentage>
auflösen, müssen jedoch denselben Typ haben, sonst ist die Funktion ungültig; das Ergebnis hat denselben Typ wie die Argumente. -
Wenn
valueToRound
genau einem ganzzahligen Vielfachen vonroundingInterval
entspricht, löst sichround()
exakt zuvalueToRound
auf (unter Beibehaltung, obvalueToRound
0⁻
oder0⁺
ist, falls relevant). Andernfalls gibt es zwei ganzzahlige Vielfache vonroundingInterval
, die potenziell "näher" anvalueToRound
liegen, ein niedrigeresroundingInterval
, das näher bei−∞
liegt, und ein höheresroundingInterval
, das näher bei+∞
liegt.
Formale Syntax
<round()> =
round( <rounding-strategy>? , <calc-sum> , <calc-sum>? )
<rounding-strategy> =
nearest |
up |
down |
to-zero
<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*
<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*
<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )
<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
Beispiele
Positive Werte runden
Dieses Beispiel demonstriert, wie die Rundungsstrategien der round()
-Funktion für positive Werte funktionieren.
Von den fünf Boxen unten wird die round()
-Funktion verwendet, um die Höhe der letzten vier festzulegen.
Der zu rundende Wert liegt in jedem Fall zwischen 100 px und 125 px, und der Rundungswert beträgt in allen Fällen 25 px.
Die Höhe der Boxen wird daher entweder auf 125 px aufgerundet oder auf 100 px abgerundet.
HTML
Das HTML definiert 5 div
-Elemente, die durch das CSS als Boxen dargestellt werden.
Die Elemente enthalten Text, der die Rundungsstrategie, den Anfangswert und die erwartete finale Höhe der Box (in Klammern) angibt.
<div class="box box-1">height: 100px</div>
<div class="box box-2">up 101px (125px)</div>
<div class="box box-3">down 122px (100px)</div>
<div class="box box-4">to-zero 120px (100px)</div>
<div class="box box-5">nearest 117px (125px)</div>
CSS
Das CSS, das auf alle Boxen angewendet wird, ist unten dargestellt.
Beachten Sie, dass wir eine benutzerdefinierte CSS-Eigenschaft namens --rounding-interval
anwenden, die wir für das Rundungsintervall verwenden werden.
div.box {
width: 100px;
height: 100px;
background: lightblue;
--rounding-interval: 25px;
}
Das erste div
von links wird nicht mit spezifischen CSS-Regeln angesprochen, sodass es eine Standardhöhe von 100px hat.
Das CSS für das zweite, dritte und vierte div
wird unten gezeigt, welches jeweils nach oben, nach unten und auf null rundet.
div.box-2 {
height: round(up, 101px, var(--rounding-interval));
}
div.box-3 {
height: round(down, 122px, var(--rounding-interval));
}
div.box-4 {
height: round(to-zero, 120px, var(--rounding-interval));
}
Beachten Sie, wie oben das Rundungsintervall mit var()
und der benutzerdefinierten CSS-Eigenschaft --rounding-interval
angegeben wird.
Die letzte Box wird ohne Angabe einer Rundungsstrategie eingestellt und verwendet daher standardmäßig nearest
.
In diesem Fall befindet sich das nächste Intervall zu 117 px bei 125 px, sodass aufgerundet wird.
Nur zum Kontrast sind hier fest codierte Werte sowohl für den Rundungswert als auch für das Intervall angegeben.
Obwohl dies zulässig ist, würden Sie dies normalerweise nicht tun, da es keinen Sinn ergibt, eine Zahl zu runden, wenn Sie das Ergebnis bereits kennen müssen.
div.box-5 {
height: round(117px, 25px);
}
Ergebnis
Wenn der Browser die CSS round()
-Funktion unterstützt, sollten Sie fünf Spalten mit Höhen sehen, die wie im enthaltenen Text angegeben gerundet sind.
Spezifikationen
Specification |
---|
CSS Values and Units Module Level 4 # funcdef-round |