CSS свойство perspective
Свойство perspective добавляет перспективу элементу, позиционированному в 3D, и определяет расстояние между плоскостью z=0 и наблюдателем.
3D-элемент с z > 0 становится больше, а 3D-элемент с z < 0 становится меньше.
Свойство perspective принимает значение длины. Ноль является допустимым значением, а отрицательные значения воспринимаются как положительные.
Свойство perspective является одним из свойств CSS3.
INFO
Основное отличие свойства perspective от значения perspective() свойства transform заключается в следующем: свойство perspective не влияет на сам элемент; оно лишь применяет перспективный вид к его дочерним элементам. В то время как функция perspective() добавляет глубину непосредственно к тому элементу, к которому применяется.
INFO
Современные браузеры полностью поддерживают это свойство без вендорных префиксов.
| Начальное значение | none |
|---|---|
| Применяется к | Элементы, поддерживающие трансформацию. |
| Наследуется | Нет. |
| Анимация | Да. Трансформация перспективы анимируема. |
| Версия | CSS3 |
| Синтаксис DOM | object.style.perspective = "70px"; |
Синтаксис
Синтаксис CSS perspective
perspective: length | none | initial | inherit;Пример использования свойства perspective:
Пример кода CSS perspective
<!DOCTYPE html>
<html>
<head>
<title>Title of the element</title>
<style>
.element1 {
padding: 50px;
position: absolute;
border: 1px solid #666;
background-color: #1c87c9;
background: #8ebf42;
-webkit-transform-style: preserve-3d;/* Safari 3-8 */
-webkit-transform: rotateX(40deg);/* Safari 3-8 */
transform-style: preserve-3d;
transform: rotateX(40deg);
}
.element2 {
position: relative;
height: 160px;
width: 160px;
margin-left: 20px;
border: 1px solid #000;
-webkit-perspective: none;/* Safari 4-8 */
perspective: none;
}
</style>
</head>
<body>
<h2>Perspective property example</h2>
<h3>perspective: none:</h3>
<div class="element2">
Box2
<div class="element1">Box1</div>
</div>
</body>
</html>Результат

Пример свойства perspective со значением 100px:
Пример CSS perspective с px
<!DOCTYPE html>
<html>
<head>
<title>Title of the element</title>
<style>
.element1 {
padding: 50px;
position: absolute;
border: 1px solid #666;
background-color: #1c87c9;
background: #8ebf42;
-webkit-transform-style: preserve-3d;/* Safari 3-8 */
-webkit-transform: rotateX(40deg);/* Safari 3-8 */
transform-style: preserve-3d;
transform: rotateX(40deg);
}
.element2 {
position: relative;
height: 150px;
width: 150px;
margin-left: 50px;
border: 1px solid #000;
-webkit-perspective: 100px;/* Safari 4-8 */
perspective: 100px;
}
</style>
</head>
<body>
<h2>Perspective property example</h2>
<h3>perspective: 100px:</h3>
<div class="element2">
Box2
<div class="element1">Box1</div>
</div>
</body>
</html>Значения
| Значение | Описание |
|---|---|
| length | Применяет перспективную трансформацию к элементу и его содержимому. |
| none | Не применяет перспективную трансформацию. |
| initial | Заставляет свойство использовать значение по умолчанию. |
| inherit | Наследует свойство от родительского элемента. |
Практика
В чем заключается функция CSS-свойства 'perspective'?