Функция perspective()

Стилевая функция perspective() определяет расстояние от плоскости экрана до точки сходимости линий и тем самым задаёт, насколько выражен эффект перспективы. Точка сходимости по умолчанию располагается в центре элемента и может быть изменена с помощью свойства perspective-origin.

Синтаксис

transform: perspective(<размер>)
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

В качестве значения указывается расстояние от плоскости монитора до точки сходимости линий. Нулевое или отрицательное значение отменяет действие перспективы. Чем меньше значение, тем более выраженной выглядит перспектива и наоборот.

Песочница

Винни-Пух был всегда не прочь немного подкрепиться, в особенности часов в одиннадцать утра, потому что в это время завтрак уже давно окончился, а обед ещё и не думал начинаться. И, конечно, он страшно обрадовался, увидев, что Кролик достаёт чашки и тарелки.
div {
  transform-origin: 0 50%;
  transform:
  perspective({{ playgroundValue }}px)
  rotateY(15deg);
}

Пример

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>perspective()</title> <style> body { background: #000; color: #ffe919; } @keyframes scroll { from { top: 100%; } to { top: -100%; } } .titles { position: absolute; width: 18em; height: 50em; bottom: 0; left: 50%; margin-left: -9em; font-size: 2em; line-height: 1.5; text-align: justify; transform-origin: 50% 100%; transform: perspective(300px) rotateX(25deg); overflow: hidden; } .content { position: absolute; top: 100%; animation: scroll 90s linear infinite; } </style> </head> <body> <div class="titles"> <div class="content"><p>В Галактике бушует гражданская война. Корабли повстанцев, нанеся удар с тайной базы, одержали первую победу над жестокой Галактической Империей.</p> <p>Во время сражения шпионы повстанцев смогли добыть секретные чертежи супероружия Империи — ЗВЕЗДЫ СМЕРТИ, укрепленной космической станции, обладающей достаточной огневой мощью, чтобы уничтожить целую планету.</p> <p>Преследуемая зловещими агентами Империи, принцесса Лея летит домой на своем корабле, везя с собой украденные чертежи, которые могут спасти её народ и вернуть свободу галактике...</p> </div> </div> </body> </html>

Примечание

Chrome до версии 36, Opera до версии 23, Safari до версии 9 и Android поддерживают свойство -webkit-transform.

Firefox до версии 16 поддерживает свойство -moz-transform.

Спецификация

CSS Transforms Module Level 2

Браузеры

10 12 12 36 15 23 4 9 10 16
3 10 16 37 3.2 9.2

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.