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.
perspective-origin
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
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: rgba(90, 90, 90, 0.7);
transform: translateZ(50px);
}
.back {
background: rgba(0, 210, 0, 0.7);
transform: rotateY(180deg) translateZ(50px);
}
.right {
background: rgba(210, 0, 0, 0.7);
transform: rotateY(90deg) translateZ(50px);
}
.left {
background: rgba(0, 0, 210, 0.7);
transform: rotateY(-90deg) translateZ(50px);
}
.top {
background: rgba(210, 210, 0, 0.7);
transform: rotateX(90deg) translateZ(50px);
}
.bottom {
background: rgba(210, 0, 210, 0.7);
transform: rotateX(-90deg) translateZ(50px);
}
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.
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 the0length value. -
center, a keyword being a shortcut for the50%percentage value. -
right, a keyword being a shortcut for the100%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 the0length value. -
center, a keyword being a shortcut for the50%percentage value. -
bottom, a keyword being a shortcut for the100%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 | bottom | <length-percentage> ] |
[ 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
Browser compatibility
| Desktop | Mobile | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
perspective-origin |
3612 | 1212 | 164910 | 2315 | 94 | 3618 | 164910 | 2414 | 92 | 3.01.0 | 4.43 |
bottom |
12 | 12 | 10 | 15 | 4 | 18 | 10 | 14 | 2 | 1.0 | 4.4 |
center |
12 | 12 | 10 | 15 | 4 | 18 | 10 | 14 | 2 | 1.0 | 4.4 |
left |
12 | 12 | 10 | 15 | 4 | 18 | 10 | 14 | 2 | 1.0 | 4.4 |
right |
12 | 12 | 10 | 15 | 4 | 18 | 10 | 14 | 2 | 1.0 | 4.4 |
top |
12 | 12 | 10 | 15 | 4 | 18 | 10 | 14 | 2 | 1.0 | 4.4 |
See also
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/perspective-origin