--- title: transform-origin slug: Web/CSS/transform-origin tags: - CSS - CSS Transoforms - Propriété CSS - Reference - transform-origin - 'valeur par défaut : center' translation_of: Web/CSS/transform-origin ---
La propriété transform-origin
permet de modifier l'origine du repère pour les opérations de transformation d'un élément.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Par exemple, l'origine par défaut pour la fonction rotate()
est le centre de la rotation. Cette propriété est utilisée en :
Les valeurs qui ne sont pas définies explicitement sont réinitialisées avec les valeurs correspondantes.
Par défaut, l'origine d'une transformation est center
.
/* Utilisation d'une seule valeur */ transform-origin: 2px; transform-origin: bottom; /* x-offset y-offset */ transform-origin: 3cm 2px; /* y-offset x-offset-keyword */ transform-origin: 2px left; /* x-offset-keyword y-offset */ transform-origin: left 2px; /* x-offset-keyword y-offset-keyword */ transform-origin: right top; /* y-offset-keyword x-offset-keyword */ transform-origin: top right; /* x-offset y-offset z-offset */ transform-origin: 2px 30% 10px; /* y-offset x-offset-keyword z-offset */ transform-origin: 2px left 10px; /* x-offset-keyword y-offset z-offset */ transform-origin: left 5px -3px; /* x-offset-keyword y-offset-keyword z-offset */ transform-origin: right bottom 2cm; /* y-offset-keyword x-offset-keyword z-offset */ transform-origin: bottom right 2cm; /* Valeurs globales */ transform-origin: inherit; transform-origin: initial; transform-origin: unset;
La propriété transform-origin
peut être définie en utiisant une, deux ou trois valeurs.
left
, center
, right
, top
, bottom
.left
, center
, right
top
, center
, bottom
.x-offset
offset-keyword
left
, right
, top
, bottom
ou center
qui décrit le décalage correspondant.y-offset
x-offset-keyword
left
, right
ou center
qui décrit la distance, depuis le bord gauche de la boîte, à laquelle l'origine de la transformation sera placée.y-offset-keyword
top
, bottom
ou center
qui décrit la distance, depuis le bord haut de la boîte, à laquelle l'origine de la transformation sera placée.z-offset
Les mots-clés sont des raccourcis qui correspondent aux valeurs {{cssxref("<percentage>")}} suivantes :
Mot-clé | Valeur |
---|---|
left |
0% |
center |
50% |
right |
100% |
top |
0% |
bottom |
100% |
Voir la page sur l'utilisation des transformations CSS pour des exemples supplémentaires.
Code | Exemple |
---|---|
|
<div class="box1"> </div> .box1 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: none; } {{EmbedLiveSample('transform_none', '', '120', '', '', 'no-button') }} |
|
<div class="box2"> </div> .box2 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: rotate(30deg); } {{EmbedLiveSample('transform_rotate_only', '', '120', '', '', 'no-button') }} |
|
<div class="box3"> </div> .box3 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform-origin: 0 0; transform: rotate(30deg); } {{EmbedLiveSample('transform_rotate', '', '120', '', '', 'no-button') }} |
|
<div class="box4"> </div> .box4 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform-origin: 100% 100%; transform: rotate(30deg); } {{EmbedLiveSample('transform_rotate_with_percentage', '', '120', '', '', 'no-button') }} |
|
<div class="box5"> </div> .box5 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform-origin: -10em -30em; transform: rotate(30deg); } {{EmbedLiveSample('transform_rotate_with_em', '', '120', '', '', 'no-button') }} |
|
<div class="box6"> </div> .box6 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: scale(1.9); } {{EmbedLiveSample('transform_scale_only', '', '120', '', '', 'no-button') }} |
|
<div class="box7"> </div> .box7 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: scale(1.9); transform-origin: 0 0; } {{EmbedLiveSample('transform_scale_without_origin', '', '120', '', '', 'no-button') }} |
|
<div class="box8"> </div> .box8 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: scale(1.9); transform-origin: 100% -30%; } {{EmbedLiveSample('transform_scale', '', '120', '', '', 'no-button') }} |
|
<div class="box9"> </div> .box9 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: skewX(50deg); transform-origin: 100% -30%; } {{EmbedLiveSample('transform_skew_x', '', '120', '', '', 'no-button') }} |
|
<div class="box10"> </div> .box10 { margin: 0.5em; width: 3em; height: 3em; border: solid 1px; background-color: palegreen; transform: skewY(50deg); transform-origin: 100% -30%; } {{EmbedLiveSample('transform_skew_y', '', '120', '', '', 'no-button') }} |
Spécification | État | Commentaires |
---|---|---|
{{SpecName('CSS3 Transforms', '#transform-origin-property', 'transform-origin')}} | {{Spec2('CSS3 Transforms')}} | Définition initiale. |
{{cssinfo}}
{{Compat("css.properties.transform-origin")}}