Кратко
СкопированоСвойство задаёт положение точки, относительно которой применяются трансформации.
Пример
Скопировано<div class="element"></div>
<div class="element"></div>
.element { transform-origin: 0 0; transform: rotate(-30deg);}
.element { transform-origin: 0 0; transform: rotate(-30deg); }
Здесь элемент поворачивается относительно верхнего левого угла.
Как понять
СкопированоНекоторые трансформации выполняются относительно какой-то точки. Возьмём для примера поворот. По умолчанию он происходит относительно центра элемента. То есть в центре элемента есть некая неподвижная точка, вокруг которой происходит поворот. Но что, если мы хотим повернуть элемент не относительно центра, а относительно угла? То есть при повороте угловая точка элемента должна остаться неподвижной, а остальной элемент будет поворачиваться вокруг неё. В этом случае нам поможет свойство transform
. Оно задаёт координаты точки, относительно которой будет выполняться трансформация. В примере ниже мы задали для второго элемента координаты (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
это то же самое, что и transform
.
Если это ключевое слово center
, то оно воспринимается, как два значения: transform
, то есть точка трансформации устанавливается в центр элемента.
Если это другое ключевое слово (top
, left
, right
, bottom
), то в зависимости от значения точка трансформации смещается либо вдоль оси x, либо вдоль оси y: transform
это то же самое, что и transform
.
Подсказки
Скопировано💡 Два значения задаются для осей x и y соответственно. Три значения — для x, y и z. Для осей x и y можно задавать ключевые слова: top
, bottom
, left
, right
, center
. Для оси z можно задавать только числовые значения.
💡 Свойство не наследуется.
На практике
Скопированосоветует Скопировано
🛠 transform
эффективно работает не только при повороте. Плавное масштабирование тоже может давать разный эффект в зависимости от положения точки трансформации.