Перейти к содержимому

CSS свойство perspective

Свойство perspective добавляет перспективу элементу, позиционированному в 3D, и определяет расстояние между плоскостью z=0 и наблюдателем.

3D-элемент с z > 0 становится больше, а 3D-элемент с z < 0 становится меньше.

Свойство perspective принимает значение длины. Ноль является допустимым значением, а отрицательные значения воспринимаются как положительные.

Свойство perspective является одним из свойств CSS3.

INFO

Основное отличие свойства perspective от значения perspective() свойства transform заключается в следующем: свойство perspective не влияет на сам элемент; оно лишь применяет перспективный вид к его дочерним элементам. В то время как функция perspective() добавляет глубину непосредственно к тому элементу, к которому применяется.

INFO

Современные браузеры полностью поддерживают это свойство без вендорных префиксов.

Начальное значениеnone
Применяется кЭлементы, поддерживающие трансформацию.
НаследуетсяНет.
АнимацияДа. Трансформация перспективы анимируема.
ВерсияCSS3
Синтаксис DOMobject.style.perspective = "70px";

Синтаксис

Синтаксис CSS perspective

css
perspective: length | none | initial | inherit;

Пример использования свойства perspective:

Пример кода CSS perspective

html
<!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>

Результат

CSS perspective with px

Пример свойства perspective со значением 100px:

Пример CSS perspective с px

html
<!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'?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.