Transform-origin - Propriété CSS
Résumé des caractéristiques de la propriété transform-origin
transform-box
50% 50%
transform-origin
passe progressivement d'une valeur à une autre.Schéma de la syntaxe de transform-origin
.
transform-origin
.Cliquez sur les liens du schéma pour plus de précisons sur les valeurs. Télécharger le schéma en SVG
Description des termes utilisés sur le schéma :
length-x
,length-y
etlength-z
sont des valeurs numériques suivies d'une des unités de dimension, ou des pourcentages.
Description de la propriété transform-origin
.
transform-origin
définit le point d'origine pour les transformations,
c'est à dire le point qui reste fixe pendant la transformation.
Par exemple, dans le cas d'une rotation, le point d'origine sera le centre de rotation.
Lorsque la transformation est une translation, le point d'origine est sans importance.
Reportez-vous également à la propriété transform-box
qui définit la boîte de référence pour transform-origin
.
Une présentation plus générale sur les transformations est consultable sur la page de la propriété transform
.
Valeurs pour transform-origin
.
- transform-origin: left center; x y
Le point d'origine des transformations est positionné par rapport à ces deux valeurs. La première valeur (
x
) définissant la position horizontale, et la deuxième valeur (y
), la position verticale.x
peut prendre les valeursleft
,center
ouright
.
y
peut prendre les valeurstop
,center
oubottom
.
Si une seule valeur est indiquée, l'autre est fixée à
center
. - transform-origin: 100px 20px; x y
Le point d'origine est positionné en fonction de ces deux valeurs.
Ce sont deux nombres positifs ou négatifs, suivis d'une unité de dimension (voir les unités de dimension).
S'il s'agit de pourcentages, ils sont calculés par rapport aux dimensions de la boîte de référence, cette dernière étant définie par la propriété
transform-box
. Le premier pourcentage (x
) est calculé par rapport à la largeur de la boîte de référence, et le deuxième (y
) par rapport à la hauteur de la boîte de référence.
Les pourcentages peuvent être négatifs ou supérieurs à100%
, ce qui fixe un point d'origine à l'extérieur de l'élément. - transform-origin: 100px 20px 10px; x y z
Une troisième valeur peut être indiquée, elle définit la hauteur du point d'origine (suivant l'axe Z, perpendiculaire à l'écran). Une valeur positive indique un point d'origine au dessus du plan de l'écran, tandis qu'une valeur négative indique un point d'origine plus profond que le plan de l'écran.
Cette valeur
z
est un nombre suivi d'une unité de dimension absolue. Les pourcentages ne sont pas autorisés pour la valeurz
.
Lorsqu'elle n'est pas précisée, cette troisième valeur est fixée à0
par défaut.Les deux premières valeurs peuvent prendre toutes les valeurs définies précédemment.
- transform-origin: initial; (
50% 50%
) transform-origin: inherit; transform-origin: revert; transform-origin: revertLayer; transform-origin: unset;Consultez les pages suivantes pour plus de détails :
initial
,inherit
,revert
,revert-layer
,unset
.
Exemple d'animation de transform-origin
.
L'exemple ci-dessous combien deux animations : une sur la propriété transform
, ce qui produit la rotation rapide de l'élément, et l'autre sur la
propriété transform-origin
.
Ces deux animations ayant des durées différentes, ce qui donne l'impression d'une rotation mal équilibrée, bancale.
Exemple interactif avec la propriété transform-origin
.
Le simulateur ci-après fait appel aux animations afin d'illustrer transform-origin
.
Pour observer l'effet de la valeur Z, choisissez "Rotation suivant l'axe X".
animation
:

Compatibilité des navigateurs avec transform-origin
.
Les transformations, et donc la propriété transform-origin
sont maintenant correctement prises en charge par tous les navigateurs.
backface-visibility
.transform-origin
qui définit le point d'origine des transformations (celui qui reste inchangé).Remarques :
(1) Ne supporte pas les transformations 2D sur les éléments SVG. Utilisez l'attribut transform
à la place.
(2) Internet Explorer ne supporte pas transform-style:preserve-3d
limitant ainsi l'imbrication des animations.
2D
3D
transform-origin
Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Opéra

Firefox pour Androïd

Samsung Internet

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

Safari

Safari sur IOS

UC Browser pour Androïd

Opéra mini
Histoire de la propriété transform-origin
.
-
Module CSS - Transformations - Niveau 1
Première définition des propriétés relatives aux transformations en CSS, donttransform-origin
.28 Février 2012Document de travail.14 Février 2019Candidat à la recommandation. -
Module CSS - Transformations - Niveau 2
Introduction des transformations en 3D.
Pas de changement concernant directement la propriététransform-origin
.03 Mars 2020Document de travail.
Voir aussi, concernant les transformations.
Le module "Module CSS - Transformations" (ou CSS Transforms Module en anglais) décrit la propriété transform-origin
, et regroupe également toutes
les définitions concernant les transformations en CSS :
backface-visibility
.transform-origin
qui définit le point d'origine des transformations (celui qui reste inchangé).Remarques :
(1) Ne supporte pas les transformations 2D sur les éléments SVG. Utilisez l'attribut transform
à la place.
(2) Internet Explorer ne supporte pas transform-style:preserve-3d
limitant ainsi l'imbrication des animations.