perspective-origin

Задаёт координаты точки, куда смотрит наблюдатель. Это свойство работает совместно со свойством perspective и определяет точку сходимости линий при перспективе.

Краткая информация

Значение по умолчанию50% 50%
НаследуетсяНет
ПрименяетсяК трансформируемым элементам
АнимируетсяДа

Синтаксис ?

perspective-origin: <позиция>

Здесь <позиция>:

 [ <проценты> | <размер> | left | center | right | top | bottom] |
[[ <проценты> | <размер> | left | center | right ] && 
 [ <проценты> | <размер> | top | center | bottom ]]

Обозначения

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

Значения

Если указано только одно значение, то оно считается координатой X, два значения определяют вначале координату X, затем Y, при этом ключевые слова могут идти в произвольном порядке. Проценты задаются относительно ширины элемента, отсчёт координат начинается с его левого верхнего угла. Проценты, пиксели и другие единицы CSS могут быть отрицательными. Ниже приведено, как связаны между собой процентная запись и ключевые слова.

  • left = left center = 0 50% — центр левого края.
  • center = center center = 50% 50% — центральная точка.
  • right = right center = 100% 50% — центр правого края.
  • top = center top = 50% 0 — центр верхнего края.
  • bottom = center bottom 50% 100% — центр нижнего края
  • left top = 0 0 — левый верхний угол.
  • left bottom = 0 100% — левый нижний угол.
  • right top = 100% 0 — правый верхний угол.
  • right bottom = 100% 100% — правый нижний угол.

Песочница

Винни-Пух был всегда не прочь немного подкрепиться, в особенности часов в одиннадцать утра, потому что в это время завтрак уже давно окончился, а обед ещё и не думал начинаться. И, конечно, он страшно обрадовался, увидев, что Кролик достаёт чашки и тарелки.
div {
  perspective: 1000px;
  perspective-origin: left top;
}

Пример

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>perspective-origin</title>
  <style>
   .cube {
    font-size: 5em;
    width: 2em;
    height: 2em;
    margin: 1em auto;
    transform-style: preserve-3d;
    perspective: 500px;
    animation: move-origin infinite 2s;
   }
   .side {
    position: absolute;
    width: 2em;
    height: 2em; 
    background: rgba(255, 99, 71, 0.6);
    border: 1px solid rgba(0, 0, 0, 0.5);
    color: white; 
    text-align: center;
    line-height: 2em;
   }
   .front  { transform:                  translateZ(1em); }
   .top    { transform: rotateX( 90deg)  translateZ(1em); }
   .right  { transform: rotateY( 90deg)  translateZ(1em); }
   .left   { transform: rotateY(-90deg)  translateZ(1em); }
   .bottom { transform: rotateX(-90deg)  translateZ(1em); }
   .back   { transform: rotateY(-180deg) translateZ(1em); }
   @keyframes move-origin {
    0%   { perspective-origin: 0 0; }
    25%  { perspective-origin: 100% 0; }
    50%  { perspective-origin: 100% 100%; }
    75%  { perspective-origin: 0 100%; }
    100% { perspective-origin: 0 0; }
   }
  </style>
 </head> 
 <body> 
  <div class="cube">
   <div class="side front">1</div>
   <div class="side back">6</div>
   <div class="side right">4</div>
   <div class="side left">3</div>
   <div class="side top">5</div>
   <div class="side bottom">2</div>
  </div>
 </body> 
</html>

Объектная модель

Объект.style.perspectiveOrigin

Примечание

Браузеры Chrome до версии 36, Opera до версии 23, Safari, Android понимают свойство -webkit-perspective-origin.

Firefox до версии 16 понимает свойство -moz-perspective-origin.

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

СпецификацияСтатус
CSS Transforms Level 1Рабочий проект

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

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor's draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры ?

Браузеры

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

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

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

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 05.09.2017
Редакторы: Влад Мержевич