CSS-свойство `perspective-origin`
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с марта 2022 года.
CSS-свойство perspective-origin CSS определяет положение, в котором находится точка наблюдения. Оно используется в качестве точки схода свойством perspective.
Свойства perspective-origin и perspective задаются для родительского элемента преобразуемого дочернего элемента в трёхмерном пространстве, в отличие от функции преобразования perspective(), которая задаётся для преобразуемого элемента.
Попробуйте
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);
}
Синтаксис
/* 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;
Значения
- x-position
- Задаёт положение абсциссы точки схода. Возможны следующие значения:
-
<length-percentage>— задаёт положение абсолютным значением длины или относительно ширины элемента. Значение может быть отрицательным. -
left— ключевое слово, сокращённая запись значения длины0. -
center— ключевое слово, сокращённая запись процентного значения50%. -
right— ключевое слово, сокращённая запись процентного значения100%.
-
- y-position
- Задаёт положение ординаты точки схода. Возможны следующие значения:
-
<length-percentage>— задаёт положение абсолютным значением длины или относительно высоты элемента. Значение может быть отрицательным. -
top— ключевое слово, сокращённая запись значения длины0. -
center— ключевое слово, сокращённая запись процентного значения50%. -
bottom— ключевое слово, сокращённая запись процентного значения100%.
-
Формальное определение
| Исходное значение | 50% 50% |
|---|---|
| Применяется к | преобразуемым элементам |
| Наследуется | нет |
| Проценты | относительно размеров ограничивающего прямоугольника |
| Вычисленное значение | для <length> — абсолютное значение, в остальных случаях — процентное значение |
| Тип анимации | простое значение типа «длина», «процент» или «calc» |
Формальный синтаксис
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>
Примеры
Изменение точки наблюдения
Пример изменения perspective-origin приведён в разделе Использование CSS-преобразований > Изменение точки наблюдения.
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для 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 |
Нет |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
26 |
x-start |
Нет |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
26 |
y-end |
Нет |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
26 |
y-start |
Нет |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
Нет |
26 |
Нет |
Нет |
26 |
См. также
- Использование CSS-преобразований
transform-style<transform-function>perspective-
функция
transform: perspective()
© 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