Spec-Zone.ru › CSS

`perspective-origin` CSS property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It's been available across browsers since March 2022.

The perspective-origin CSS property determines the position at which the viewer is looking. It is used as the vanishing point by the perspective property.

The perspective-origin and perspective properties are attached to the parent of a child transformed in 3-dimensional space, unlike the perspective() transform function which is placed on the element being transformed.

Try it

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);
}

Syntax

/* One-value syntax */
perspective-origin: x-position;

/* Two-value syntax */
perspective-origin: x-position y-position;

/* When both x-position and y-position are keywords,
   the following is also valid */
perspective-origin: y-position x-position;

/* Global values */
perspective-origin: inherit;
perspective-origin: initial;
perspective-origin: revert;
perspective-origin: revert-layer;
perspective-origin: unset;

Values

x-position
Indicates the position of the abscissa of the vanishing point. It can have one of the following values:
  • <length-percentage> indicating the position as an absolute length value or relative to the width of the element. The value may be negative.
  • left, a keyword being a shortcut for the 0 length value.
  • center, a keyword being a shortcut for the 50% percentage value.
  • right, a keyword being a shortcut for the 100% percentage value.
y-position
Indicates the position of the ordinate of the vanishing point. It can have one of the following values:
  • <length-percentage> indicating the position as an absolute length value or relative to the height of the element. The value may be negative.
  • top, a keyword being a shortcut for the 0 length value.
  • center, a keyword being a shortcut for the 50% percentage value.
  • bottom, a keyword being a shortcut for the 100% percentage value.

Formal definition

Initial value 50% 50%
Applies to transformable elements
Inherited no
Percentages refer to the size of bounding box
Computed value for <length> the absolute value, otherwise a percentage
Animation type simple list of length, percentage, or calc

Formal syntax

perspective-origin = 
  <position>

<position> = 
  [ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]

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

Examples

Changing the perspective origin

An example showing how to change perspective-origin is given in Using CSS transforms > Changing the perspective origin.

Specifications

Specification
CSS Transforms Module Level 2
# perspective-origin-property

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS
perspective-origin
36
12
12
12
16
49
10
23
15
9
4
36
18
16
49
10
24
14
9
2
3.0
1.0
4.4
3
9
2
bottom
12
12
10
15
4
18
10
14
2
1.0
4.4
2
center
12
12
10
15
4
18
10
14
2
1.0
4.4
2
left
12
12
10
15
4
18
10
14
2
1.0
4.4
2
right
12
12
10
15
4
18
10
14
2
1.0
4.4
2
top
12
12
10
15
4
18
10
14
2
1.0
4.4
2
x-end
No
No
No
No
26
No
No
No
26
No
No
26
x-start
No
No
No
No
26
No
No
No
26
No
No
26
y-end
No
No
No
No
26
No
No
No
26
No
No
26
y-start
No
No
No
No
26
No
No
No
26
No
No
26

See also

  • Using CSS Transforms
  • transform-style
  • <transform-function>
  • perspective
  • transform: perspective() function

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/perspective-origin

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API