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

Трансформация – это эффект, который позволяет элементу изменять форму, размер и положение.

Трансформации CSS позволяют сдвигать, поворачивать, масштабировать и изгибать элементы.

В CSS существуют 2- и 3-мерные трансформации.

Translate

transform: translate(50px, 100px);

transform: translateX(-50px);

transform: translateY(-5rem);

перемещает элемент из своего текущего положения (в соответствии с параметрами, заданными для оси x и оси y).

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

Rotate

transform: rotate(20deg);

transform: rotate(180deg);

transform: rotate(90deg);

поворачивает элемент по часовой стрелке или против неё в соответствии с заданным значением

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

Scale

transform: scale(2, 2);
transform: scale(2);

transform: scale(1.5, 2);

transform: scale(.5);

увеличивает или уменьшает размер элемента (в соответствии с параметрами, заданными для ширины и высоты)

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

SkewX

transform: skewX(20deg);

transform: skewX(-20deg);

transform: skewX(90deg);

растягивет элемент вдоль оси х на заданный угол

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

SkewY

transform: skewY(20deg);

transform: skewY(-20deg);

transform: skewY(90deg);

растягивает элемент вдоль оси у на заданный угол

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

Transform-origin

transform-origin: 50% 50%;

transform-origin: 0 0;

transform-origin: 100% 100%;

позволяет изменять положение точку опоры трансформации

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis, expedita.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores, perspiciatis!

Использование нескольких трансформаций

transform: scale(.9);

transform: scale(.9) rotateY(45deg);

transform: scale(.9) rotateY(45deg) skewX(25deg);

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!

3d-трансформации

Чтобы 3d стало действительно 3d, нужно использовать свойство perspective для контейнера трансформируемого элемента либо в свойстве transform самого элемента. Оно определяет, насколько далеко объект находится от нас.

Если контейнер

perspective: 500px;

transform: translate3d(50px, 100px, 150px);

transform: translateX(50px);

transform: translateY(100px);

transform: translateZ(-5rem);

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!

Если контейнер

transform: rotateX(45deg);

transform: rotateY(45deg);

transform: rotateZ(45deg);

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!

Если сам элемент

transform: perspective(500px) rotateX(45deg);

transform: perspective(500px) rotateY(45deg);

transform: perspective(500px) rotateZ(45deg);

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!

В чём отличие

perspective: 500px;

transform: perspective(500px);

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, laborum!