Les fonctions mathématiques.
Les fonctions de calcul mathématique en CSS.
Principales fonctions de calcul.
Détermination ou changement de signe :
Fonctions de calcul exponentiel et logarithmique :
sqrt(): Calcule la racine carrée d'un nombre.exp(): Calcule l'exponentielle d'un nombre.pow(): Calcule une mise à l'exposant.log(): Calcule le logarithme d'un nombre.hypot(): Calcule la racine carrée d'une somme de carrés de nombres.
Recherche de valeurs extrêmes :
min(): Détermine la valeur la plus petite parmi une série de valeurs.max(): Détermine la valeur la plus grande parmi une série de valeurs.clamp(): Calcule une valeur entre deux valeurs extrêmes. Cette fonction est intéressante lorsque les unités des paramètres sont différentes, mais de même nature (dimensions, angle...).
Calculs d'arrondis :
round(): Calcule l'arrondi d'un nombre.mod(): Calcule le reste de la division entière entre deux nombres.rem(): Calcule le reste de la division entière de deux nombres.
Fonctions de calcul trigonométrique :
sin(),cos(), etc.. Voir les les fonctions trigonométriques.
Évaluation d'expressions :
calc(). : Effectue un calcul. Peut être utilisé à la place d'une valeur pour une propriété.var(). : Récupère la valeur d'une propriété personnalisée (variable).
Reportez-vous également aux pages sur les fonctions trigonométriques et sur les valeurs mathématiques prédéfinies.
Ces fonctions peuvent être utilisées avec :
Ces fonctions peuvent être utilisées avec toutes les propriétés qui attendent une valeur numérique,
ou faire partie d'une expression évaluée par la fonction calc().
Attention cependant à la correspondance des types : le type de la valeur renvoyée par le fonction doit correspondre au type de donnée
attendu par la propriété.
CSS est assez strict sur les types de données : par exemple une valeur numérique entière comme 200 n'est pas interchangeable avec
la dimension 200px.
Syntaxe des fonctions de calcul mathématique.
- <propriété>: abs(200px); a
Calcule la valeur absolue du nombre
a. La valeur retournée est du même type que la valeura. Dans notre exemple, la valeuraest une dimension (exprimée en pixels), le résultat de la fonction sera donc également une dimension, et pourra être utilisé avec toutes les propriétés qui attendent une dimension. - <propriété>: exp(200); a
Calcule
eà l'exposanta. Autrement dit, cette fonction est équivalente àpow(e,a).
eetadoivent être des nombres sans unité. le résultat de la fonction est également sans unité. - <propriété>: hypot(200px, 150px, ...); a b
La fonction
hypot()attend une série de valeurs, qui peuvent être des nombres sans unité ou avec une unité, mais toutes les unités doivent être du même type (que des dimensions par exemple).hypot()(abréviation de hypoténuse) calcule la racine carrée de la somme des carrés de ses arguments. Par exemplehypot(3px, 4px)vautsqrt(3px² + 4px²); soit5px.Si une seule valeur est fournie, la syntaxe est correcte mais
hypot()se contente de renvoyer la valeur absolue, autrement dit, donne le même résultat queabs().Si deux valeurs sont fournies,
hypot()calcule la longueur de l'hypoténuse d'un triangle rectangle dont les côtés mesurent respectivement les dimensionsaetb. Si plus de valeurs sont fournies, le calcul est le même, mas sur des figures à 3, 4 ou plus de dimensions.
Exemple d'utilisation.
Cette rangée d'arbre a été obtenue en décalant plus ou moins vers la droite et vers le haut les 2ème et 3ème arbres. Ceci est facile à réaliser avec la propriété
translate. Néanmoins l'effet n'est pas convaincant car, pour recréer la perspective, la taille des arbres devraient diminuer en fonction de leur éloignement.
Diminuer la taille des arbres est facile avec la propriété
scale, mais le coefficient de réduction doit être proportionnel à la distance de laquelle l'arbre a été déplacé. La fonctionhypot()simplifie ce calcul.
Nous vous montrons ici une simulation car peu de navigateurs traitent la fonction
hypot()mais voici ce que seraient les styles pour réaliser cela. Le nombre8a été choisi de façon empirique.#arbre2 { translate:5px -10px; scale:calc(8 / hypot(5px, 10px); } #arbre3 { translate:20px -20px; scale:calc(8 / hypot(20px, 20px); } - <propriété>: log(200); <propriété>: log(200, 3); a b
Calcule le logarithme de
aen baseb. Sibest omis, la fonction calcule le logarithme deaen basee.
Les deux nombresaetbdoivent être spécifiés sans unité. Le résultat est également sans unité. - <propriété>: pow(200, 2); a b
Calcule
aélevé à la puissanceb.
Par exempleexp(2,3)renvoie8.
aetbsont des nombres sans unité. Le résultat de la fonction est également un nombre sans unité. - <propriété>: sign(200px); a
Retourne
-1si la valeuraest négative,1siaest positif, ou retourne0siavaut0.
La valeur a peut être de n'importe quel type numérique ; dans notre exemple il s'agit d'une dimension.La fonction
sign()considère la valeur calculée, ce qui peut donner des résultats surprenants si la valeur est spécifiée avec une unité relative comme le pourcentage. par exemple50%est bien une valeur positive mais qui peut, après calcul, donner un résultat négatif. - <propriété>: sqrt(200); a
Calcule la racine carrée du nombre
a.
aest un nombre positif, sans unité, de même que le résultat calculé par sqrt().
Simulateur avec la fonction abs().
Ce simulateur est surtout intéressant pour identifier les fonctions mathématiques reconnues par votre navigateur actuel.
Il faut bien entendu qu'il y ait correspondance entre le type de valeur attendu par le propriété et le type de la valeur renvoyée
par la fonction. Par exemple, les fonctions trigonométriques comme sin() ou cos() renvoient un nombre
sans unité compris entre 0 et 1 : ces fonctions peuvent s'utiliser par exemple avec la propriété
scale (mise à l'échelle) qui attend une valeur sans unité.
Pour cette raison, le simulateur utilise trois propriétés : width qui attend une dimension, scale pour les nombres sans unités,
et rotate pour les fonctions qui renvoient un angle.
scale:1
rotate:0deg
Prise en charge des fonctions mathématiques par les navigateurs.
Les fonctions mathématiques sont maintenant bien reconnues par les navigateurs. Il reste quelques problème avec sign() et clamp()
mais qui devraient se résoudre rapidement.
Les tableaux ci-dessous sont très généraux. Reportez-vous aux fonctions calc() et var() pour plus de précisions
sur leur degré de compatibilité avec les navigateurs.
Voyez également la compatibilité des les fonctions trigonométriques.
Fonctions de calculs d'ordre général.
calc() pour évaluer une expression.var() qui permet de retrouver leur valeur.abs() (valeur absolue d'un nombre).sign() qui permet de déterminer le signe d'un nombre.min(), max() et clamp().Remarques :
(1) La fonction calc() est bogguée dans Internet Explorer.
calc()var()abs()sign()min() max()et
clamp()Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Samsung Internet

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

Safari

Safari sur IOS

Chrome

Opéra

Opéra Mobile

UC Browser pour Androïd

Firefox pour Androïd

Opéra mini
Fonctions de calculs exponentiels.
exp() qui calcule une puissance de e (2,7182818284).sqrt() qui calcule la racine carrée d'un nombre.pow() qui détermine un exposant.log(), qui calcule un logarithme.hypot() qui calcule la diagonale d'un rectangle à partir de ses côtés.exp()sqrt()pow()log()hypot()Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Samsung Internet

Chrome

Edge

Safari

Opéra

Firefox

Chrome pour Androïd

Safari sur IOS

Androïd Brower

Firefox pour Androïd

KaiOS Browser

Opéra mini
Fonctions de calculs d'arrondis.
mod() qui calcule le reste d'une division entière. La différence avec rem() apparaît lorsque les deux opérandes en sont pas du même signe.rem() qui calcule le reste d'une division entière. La différence avec mod() apparaît lorsque les deux opérandes ne sont pas du même signe.mod()rem()Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Samsung Internet

Chrome

Edge

Safari

Opéra

Firefox

Chrome pour Androïd

Safari sur IOS

Androïd Brower

Firefox pour Androïd

KaiOS Browser

Opéra mini
Historique des fonctions de calcul en CSS.
-
Module CSS - Valeurs et unités - Niveau 4
Concernantabs(). De nombreuses fonctions de calcul mathématique ou trigonométrique sont introduites dans ce niveau 4 de la spécification.14 Août 2018Document de travail.
Voir aussi : autres fonctions de calcul.
Les fonctions de calcul disponibles en CSS sont de plus en plus nombreuses, couvrant les calculs mathématiques et trigonométriques habituels. En voici la liste pour faciliter vos recherches. Vous pouvez également vous reporter à la spécification du W3C : module CSS - Valeurs et unités.
Propriétés :
Fonctions :
calc-size() permet de faire des calculs sur la dimension intrinsèque d'un élément (définie par le contenu).Valeurs:
e (base des logarithmes naturels), soit environ 2,7182818284590452354.pi (environ 3,1415926535897932).


