Fonction CSS round()
Baseline
2024
Nouvellement disponible
Depuis May 2024, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La fonction CSS round() retourne un nombre arrondi en fonction d'une stratégie d'arrondi sélectionnée.
Les auteur·ice·s devraient utiliser une propriété CSS personnalisée (par exemple, --my-property) pour la valeur d'arrondi, l'intervalle ou les deux ; utiliser la fonction round() est redondant si ces valeurs sont connues.
Syntaxe
width: round(var(--width), 50px);
width: round(up, 101px, var(--interval));
width: round(down, var(--height), var(--interval));
margin: round(to-zero, -105px, 10px);
Paramètres
La fonction round(<rounding-strategy>, valueToRound, roundingInterval) définit une stratégie d'arrondi optionnelle, une valeur (ou une expression mathématique) à arrondir et un intervalle d'arrondi (ou une expression mathématique).
La valueToRound est arrondie selon la stratégie d'arrondi, au multiple entier le plus proche de roundingInterval.
<rounding-strategy>-
La stratégie d'arrondi. Cela peut être l'une des valeurs suivantes :
up-
Arrondir
valueToRoundvers le haut au multiple entier le plus proche deroundingInterval(si la valeur est négative, elle devient « plus positive »). Cela équivaut à la méthode JavaScriptMath.ceil(). down-
Arrondir
valueToRoundvers le bas au multiple entier le plus proche deroundingInterval(si la valeur est négative, elle devient « plus négative »). Cela équivaut à la méthode JavaScriptMath.floor(). nearest(par défaut)-
Arrondir
valueToRoundau multiple entier le plus proche deroundingInterval, qui peut être soit au-dessus, soit en dessous de la valeur. SivalueToRoundest à mi-chemin entre les cibles d'arrondi ci-dessus et ci-dessous (aucune n'est "la plus proche"), elle est arrondie vers le haut. Equivalent to JavaScriptMath.round(). to-zero-
Arrondir
valueToRoundau multiple entier le plus proche deroundingIntervalvers zéro (un nombre positif diminue, tandis qu'une valeur négative devient « moins négative »). Cela équivaut à la méthode JavaScriptMath.trunc().
valueToRound-
La valeur à arrondir. Cela doit être un nombre (
<number>), une dimension (<dimension>), ou un pourcentage (<percentage>), ou une expression mathématique qui se résout en l'une de ces valeurs. roundingInterval-
L'intervalle d'arrondi. Cela peut être un nombre (
<number>), une dimension (<dimension>), ou un pourcentage (<percentage>), ou une expression mathématique qui se résout en l'une de ces valeurs. SivalueToRoundest un<number>,roundingIntervalpeut être omis et par défaut vaut1. Sinon, l'omission de cet argument entraîne une expression invalide.
Valeur de retour
La valeur de valueToRound, arrondie au multiple entier le plus proche de roundingInterval, en fonction de la stratégie d'arrondi.
-
Si
roundingIntervalest 0, le résultat estNaN. -
Si
valueToRoundetroundingIntervalsont tous deuxinfini, le résultat estNaN. -
Si
valueToRoundest infini maisroundingIntervalest fini, le résultat est le mêmeinfini. -
Si
valueToRoundest fini maisroundingIntervalest infini, le résultat dépend de la stratégie d'arrondi et du signe deA:up- SivalueToRoundest positif (non nul), retourne+∞. SivalueToRoundest0⁺, retourne0⁺. Sinon, retourne0⁻.down- SivalueToRoundest négatif (non nul), retourne−∞. SivalueToRoundest0⁻, retourne0⁻. Sinon, retourne0⁺.nearest,to-zero- SivalueToRoundest positif ou0⁺, retourne0⁺. Sinon, retourne0⁻.
-
Les calculs des arguments peuvent se résoudre en nombre (
<number>), dimension (<dimension>), ou pourcentage (<percentage>), mais doivent avoir le même type, sinon la fonction est invalide ; le résultat a le même type que les arguments. -
Si
valueToRoundest exactement égal à un multiple entier deroundingInterval,round()se résout exactement àvalueToRound(en préservant sivalueToRoundest0⁻ou0⁺, si pertinent). Sinon, il y a deux multiples entiers deroundingIntervalqui sont potentiellement « les plus proches » devalueToRound, leroundingIntervalinférieur qui est plus proche de−∞et leroundingIntervalsupérieur qui est plus proche de+∞.
Syntaxe formelle
<round()> =
round( <rounding-strategy>? , <calc-sum> , <calc-sum>? )
<rounding-strategy> =
nearest |
up |
down |
to-zero |
line-width
<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
Exemples
>Arrondir les valeurs positives
Cet exemple montre comment les stratégies d'arrondi de la fonction round() fonctionnent pour les valeurs positives.
Parmi les cinq boîtes ci-dessous, la fonction round() est utilisée pour définir la hauteur des quatre dernières.
La valeur à arrondir se situe entre 100px et 125px dans chaque cas, et la valeur d'arrondi est de 25px dans tous les cas.
La hauteur des boîtes est donc soit arrondie à 125px, soit à 100px.
HTML
Le HTML définit 5 éléments div qui sont rendus comme des boîtes par le CSS.
Les éléments contiennent du texte indiquant la stratégie d'arrondi, la valeur initiale et la hauteur finale attendue de la boîte (entre parenthèses).
<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
Le CSS appliqué à toutes les boîtes est montré ci-dessous.
Notez que nous appliquons une propriété CSS personnalisée nommée --interval-arrondi, que nous utilisons pour l'intervalle d'arrondi.
div.box {
width: 100px;
height: 100px;
background: lightblue;
--interval-arrondi: 25px;
}
Le premier div à partir de la gauche n'est pas ciblé par des règles CSS spécifiques, il a donc une hauteur par défaut de 100px.
Le CSS pour les div deux, trois et quatre est montré ci-dessous, qui arrondissent vers le haut, vers le bas et vers zéro, respectivement.
div.box-2 {
height: round(up, 101px, var(--interval-arrondi));
}
div.box-3 {
height: round(down, 122px, var(--interval-arrondi));
}
div.box-4 {
height: round(to-zero, 120px, var(--interval-arrondi));
}
Notez comment ci-dessus nous indiquons l'intervalle d'arrondi en utilisant var() et la propriété CSS personnalisée --interval-arrondi.
La dernière boîte est définie sans définir de stratégie d'arrondi, et donc par défaut à nearest.
Dans ce cas, l'intervalle le plus proche de 117px est 125px, donc il est arrondi vers le haut.
Juste pour contraste, ici nous avons défini des valeurs codées en dur pour la valeur d'arrondi et l'intervalle.
Bien que cela soit autorisé, vous ne le feriez normalement pas, car il n'y a aucun intérêt à arrondir un nombre lorsque vous savez déjà quel doit être le résultat.
div.box-5 {
height: round(117px, 25px);
}
Résultat
Si le navigateur prend en charge la fonction CSS round(), vous devriez voir cinq colonnes avec des hauteurs arrondies comme indiqué par leur texte contenu.
Spécifications
| Spécification |
|---|
| CSS Values and Units Module Level 4> # funcdef-round> |