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

Transform origin css что это

  • автор:

transform — origin

«Точка опоры» для применения трансформаций к элементу.

Время чтения: меньше 5 мин

Открыть/закрыть навигацию по статье
Контрибьюторы:

Обновлено 5 июля 2023

Кратко

Скопировать ссылку «Кратко» Скопировано

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

Пример

Скопировать ссылку «Пример» Скопировано

 div class="element">div>      
 .element  transform-origin: 0 0; transform: rotate(-30deg);> .element  transform-origin: 0 0; transform: rotate(-30deg); >      

Здесь элемент поворачивается относительно верхнего левого угла.

Как понять

Скопировать ссылку «Как понять» Скопировано

Некоторые трансформации выполняются относительно какой-то точки. Возьмём для примера поворот. По умолчанию он происходит относительно центра элемента. То есть в центре элемента есть некая неподвижная точка, вокруг которой происходит поворот. Но что, если мы хотим повернуть элемент не относительно центра, а относительно угла? То есть при повороте угловая точка элемента должна остаться неподвижной, а остальной элемент будет поворачиваться вокруг неё. В этом случае нам поможет свойство transform — origin . Оно задаёт координаты точки, относительно которой будет выполняться трансформация. В примере ниже мы задали для второго элемента координаты (0 , 0 ) . Это значит, что поворот выполнится вокруг левого верхнего угла элемента.

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Способов записи несколько, но мы можем их комбинировать.

Можно записать одним числовым значением:

 .element  transform-origin: 5px;> .element  transform-origin: 5px; >      

. или одним ключевым словом:

 .element  transform-origin: top;> .element  transform-origin: top; >      

Можно использовать два значения:

 .element  transform-origin: 5px 10%; transform-origin: 3cm 2px; transform-origin: left 2px; transform-origin: right top; transform-origin: top right;> .element  transform-origin: 5px 10%; transform-origin: 3cm 2px; transform-origin: left 2px; transform-origin: right top; transform-origin: top right; >      

. или три значения:

 .element  transform-origin: 2px 30% 10px; transform-origin: left 5px -3px; transform-origin: right bottom 2cm; transform-origin: bottom right 2cm;> .element  transform-origin: 2px 30% 10px; transform-origin: left 5px -3px; transform-origin: right bottom 2cm; transform-origin: bottom right 2cm; >      

Если одно значение является числовым, то оно воспринимается, как смещение вдоль оси x. Например: transform — origin : 5px это то же самое, что и transform — origin : 5px center .

Если это ключевое слово center , то оно воспринимается, как два значения: transform — origin : center center , то есть точка трансформации устанавливается в центр элемента.

Если это другое ключевое слово ( top , left , right , bottom ), то в зависимости от значения точка трансформации смещается либо вдоль оси x, либо вдоль оси y: transform — origin : top это то же самое, что и transform — origin : center top .

Подсказки

Скопировать ссылку «Подсказки» Скопировано

�� Два значения задаются для осей x и y соответственно. Три значения — для x, y и z. Для осей x и y можно задавать ключевые слова: top , bottom , left , right , center . Для оси z можно задавать только числовые значения.

Не лишним будет напомнить, что в CSS начало осей x, y и z — это левый верхний угол элемента. Ось x направлена вправо, ось y направлена вниз, ось z — от плоскости экрана к пользователю.

�� Свойство не наследуется.

На практике

Скопировать ссылку «На практике» Скопировано

Денис Ежков советует

Скопировать ссылку «Денис Ежков советует» Скопировано

�� transform — origin эффективно работает не только при повороте. Плавное масштабирование тоже может давать разный эффект в зависимости от положения точки трансформации.

transform-origin¶

Свойство transform-origin устанавливает координаты точки, относительно которой будет происходить трансформация элемента.

Демо¶

Трансформации

Синтаксис¶

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
/* One-value syntax */ transform-origin: 2px; transform-origin: bottom; /* x-offset y-offset */ transform-origin: 3cm 2px; /* x-offset-keyword y-offset */ transform-origin: left 2px; /* x-offset-keyword y-offset-keyword */ transform-origin: right top; /* y-offset-keyword x-offset-keyword */ transform-origin: top right; /* x-offset y-offset z-offset */ transform-origin: 2px 30% 10px; /* x-offset-keyword y-offset z-offset */ transform-origin: left 5px -3px; /* x-offset-keyword y-offset-keyword z-offset */ transform-origin: right bottom 2cm; /* y-offset-keyword x-offset-keyword z-offset */ transform-origin: bottom right 2cm; /* Global values */ transform-origin: inherit; transform-origin: initial; transform-origin: revert; transform-origin: revert-layer; transform-origin: unset; 

Значения¶

Координата по оси X. Может принимать следующие значения:

Здесь — любая единица измерения CSS.

Координата по оси Y. Может принимать следующие значения:

Координата по оси Z. Может задаваться только в любых корректных единицах для измерения длины (исключая проценты).

Оси и значения показаны на рис. 1.

Рис. 1. Оси при трансформации элемента

Отсчёт координат ведётся от левого верхнего угла элемента, по умолчанию точка трансформации находится в его центре, как показано на рисунке выше. При использовании процентов они берутся от размеров элемента.

Примечание¶

  • Internet Explorer 9 поддерживает свойство -ms-transform-origin .
  • Chrome до версии 36 и Android до версии 4 поддерживают свойство -webkit-transform-origin .
  • Safari поддерживает свойство -webkit-transform-origin .
  • Opera до версии 12.10 и с версии 15 до 23 поддерживает свойство -o-transform-origin .
  • Firefox до версии 16 поддерживает свойство -moz-transform-origin .

Значение по-умолчанию: 50% 50% 0

Применяется к трансформируемым элементам

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

Поддержка браузерами¶

CSS Transform 2D:

Can I Use transforms2d? Data on support for the transforms2d feature across the major browsers from caniuse.com.

CSS Transform 3D:

Can I Use transforms3d? Data on support for the transforms3d feature across the major browsers from caniuse.com.

Описание и примеры¶

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 html> head> meta charset="utf-8" /> title>transform-origintitle> style> div  background: #fc0; padding: 10px; display: inline-block; border: 1px solid #000; > div:hover  /* Точка поворота в правом верхнем углу */ transform-origin: 100% 0; /* Поворачиваем на 20 градусов против часовой стрелки */ transform: rotate(-20deg); > style> head> body> div>Примерdiv> body> html> 

CSS свойство transform-origin

Свойство t transform-origin позволяет изменить позицию трансформации элемента.

Transform-origin работает только вместе со свойством transform.

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

Для максимальной совместимости браузера могут быть использованы такие расширения, как -webkit- для Safari, Google Chrome и Opera (новые версии).

Значение по умолчанию 50% 50% 0
Применяется К трансформируемым элементам.
Наследуется Нет
Анимируемое Да. Градус анимируем.
Версия CSS3
DOM синтаксис Object.style.transform-origin = «10% 30%»;

Синтаксис

transform-origin: x-offset y-offset z-offset | initial | inherit;

Пример

html> html> head> title>Заголовок документа title> style> .big < position: relative; height: 300px; width: 300px; margin: 80px; padding: 5px; border: 2px solid #666; background-color: #eee; > .little < padding: 60px; position: absolute; border: 2px solid #666; background-color: #8ebf42; -ms-transform: rotate(35deg); /* IE 9 */ -ms-transform-origin: 70% 90%; /* IE 9 */ -webkit-transform: rotate(35deg); /* Safari 3-8 */ -webkit-transform-origin: 70% 90%; /* Safari 3-8 */ transform: rotate(35deg); transform-origin: 70% 90%; > style> head> body> h2>Пример свойства transform-origin h2> div class="big"> div class="little">Box div> div> body> html>

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

Пример

html> html> head> title>Заголовок документа title> style> body < background-color: #eee; font-size: 1.1em; font-family: 'Roboto', Helvetica, sans-serif; > .container < margin: 10px auto; max-width: 700px; > .wrap < width: 150px; height: 150px; border: 2px solid #666; display: inline-block; margin: 100px; > .box < width: 150px; height: 150px; position: relative; color: #eee; text-align: center; line-height: 150px; -webkit-transform: rotate(25deg); -ms-transform: rotate(25deg); transform: rotate(25deg); > .a < background-color: #0747af; > .b < background-color: #40b530; -webkit-transform-origin: top left; -ms-transform-origin: top left; transform-origin: top left; > .c < background-color: #666; -webkit-transform-origin: 90% 120%; -ms-transform-origin: 90% 120%; transform-origin: 90% 120%; > .d < background-color: #ffdb11; -webkit-transform-origin: 80px 40px; -ms-transform-origin: 80px 40px; transform-origin: 80px 40px; > style> head> body> h2>Пример свойства transform-origin h2> div class="container"> div class="wrap"> div class="box a"> 50% 50% div> div> div class="wrap"> div class="box b"> top left div> div> div class="wrap"> div class="box c"> 90% 120% div> div> div class="wrap"> div class="box d"> 80px 40px div> div> div> body> html>

Значения

  • left
  • right
  • center
  • length
  • percentage
  • top
  • center
  • bottom
  • length
  • percentage
  • length

transform-origin

Устанавливает координаты точки, относительно которой будет происходить трансформация элемента.

Синтаксис

Значения

Координата по оси X. Может принимать следующие значения:

Здесь — любая единица измерения CSS.

Координата по оси Y. Может принимать следующие значения:

Координата по оси Z. Может задаваться только в любых корректных единицах для измерения длины (исключая проценты).

Оси и значения показаны на рис. 1.

transform-origin

Рис. 1. Оси при трансформации элемента

Пример

HTML5 CSS3 IE Cr Op Sa Fx

    transform-origin   
Пример

В данном примере при наведении курсора на элемент он поворачивается на 20 градусов против часовой стрелки относительно правого верхнего угла.

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

[window.]document.getElementById(» elementID «).style.transformOrigin

Браузеры

Internet Explorer 9 поддерживает нестандартное свойство -ms-transform-origin .

Chrome, Safari, Android и iOS поддерживают нестандартное свойство -webkit-transform -origin .

Opera до версии 12.10 поддерживает нестандартное свойство -o-transform -origin .

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

CSS по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *