Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

perspective-origin

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2015.

La propriété CSS perspective-origin détermine la position depuis laquelle le spectateur regarde le document. Elle est utilisée comme point de fuite par la propriété perspective.

Exemple interactif

perspective-origin: center;
perspective-origin: top;
perspective-origin: bottom right;
perspective-origin: -170%;
perspective-origin: 500% 200%;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div class="face front">1</div>
    <div class="face back">2</div>
    <div class="face right">3</div>
    <div class="face left">4</div>
    <div class="face top">5</div>
    <div class="face bottom">6</div>
  </div>
</section>
#default-example {
  background: linear-gradient(skyblue, khaki);
  perspective: 550px;
}

#example-element {
  width: 100px;
  height: 100px;
  transform-style: preserve-3d;
  perspective: 250px;
}

.face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  backface-visibility: inherit;
  font-size: 60px;
  color: white;
}

.front {
  background: rgb(90 90 90 / 0.7);
  transform: translateZ(50px);
}

.back {
  background: rgb(0 210 0 / 0.7);
  transform: rotateY(180deg) translateZ(50px);
}

.right {
  background: rgb(210 0 0 / 0.7);
  transform: rotateY(90deg) translateZ(50px);
}

.left {
  background: rgb(0 0 210 / 0.7);
  transform: rotateY(-90deg) translateZ(50px);
}

.top {
  background: rgb(210 210 0 / 0.7);
  transform: rotateX(90deg) translateZ(50px);
}

.bottom {
  background: rgb(210 0 210 / 0.7);
  transform: rotateX(-90deg) translateZ(50px);
}

Les propriétés perspective-origin et perspective sont à rattacher à l'élément parent de l'élément qu'on veut placer dans un espace 3D. En revanche, la fonction perspective() s'applique à même l'élément qu'on veut placer en 3D.

Syntaxe

css
/* Syntaxe avec une valeur */
perspective-origin: x-position;

/* Syntaxe avec deux valeurs */
perspective-origin: x-position y-position;

/* Lorsque x-position et y-position sont des mots-clés */
/* on peut aussi avoir la forme suivante valide        */
perspective-origin: y-position x-position;

/* Valeurs globales */
perspective-origin: inherit;
perspective-origin: initial;
perspective-origin: revert;
perspective-origin: revert-layer;
perspective-origin: unset;

Valeurs

x-position

Indique la position de l'abscisse du point de fuite. Elle peut avoir l'une des valeurs suivantes :

  • <length-percentage> indiquant la position comme une valeur de longueur absolue ou relative à la largeur de l'élément. La valeur peut être négative.
  • left, un mot-clé étant un raccourci pour la valeur de longueur 0.
  • center, un mot-clé étant un raccourci pour la valeur de pourcentage 50%.
  • right, un mot-clé étant un raccourci pour la valeur de pourcentage 100%.
y-position

Indique la position de l'ordonnée du point de fuite. Elle peut avoir l'une des valeurs suivantes :

  • <length-percentage> indiquant la position comme une valeur de longueur absolue ou relative à la hauteur de l'élément. La valeur peut être négative.
  • top, un mot-clé étant un raccourci pour la valeur de longueur 0.
  • center, un mot-clé étant un raccourci pour la valeur de pourcentage 50%.
  • bottom, un mot-clé étant un raccourci pour la valeur de pourcentage 100%.

Définition formelle

Valeur initiale50% 50%
Applicabilitééléments transformables
Héritéenon
Pourcentagesse rapporte à la taille de la boîte de l'élément
Valeur calculéepour une valeur de type <length> sa valeur absolue, sinon un pourcentage
Type d'animationliste simple de longueur, pourcentage ou calc

Syntaxe formelle

perspective-origin = 
<position>

<position> =
<position-one> |
<position-two> |
<position-four>

<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>

<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}

<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}

<length-percentage> =
<length> |
<percentage>

Exemples

Changer l'origine de la perspective

Un exemple montrant comment changer perspective-origin est donné dans Utiliser les transformations CSS > Changer l'origine de la perspective.

Spécifications

Spécification
CSS Transforms Module Level 2
# perspective-origin-property

Compatibilité des navigateurs

Voir aussi