--- 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, righttop, center, bottom.x-offsetoffset-keywordleft, right, top, bottom ou center qui décrit le décalage correspondant.y-offsetx-offset-keywordleft, 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-keywordtop, 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-offsetLes 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")}}