Трансформации в CSS
Трансформации позволяют изменять положение, размер, угол наклона и поворот элемента. Они не влияют на соседние элементы (как при `position: relative`).
1. translate() — перемещение
Сдвигает элемент относительно его исходного положения. Значения могут быть в пикселях, процентах, `em`, `rem`.
Возможные варианты:
translate(x, y)— сдвиг по горизонтали и вертикалиtranslateX(x)— только по горизонталиtranslateY(y)— только по вертикали
.translate {
transform: translate(20px, 30px);
}
✅ Элемент сдвинут на 20px вправо и 30px вниз
2. rotate() — поворот
Поворачивает элемент вокруг своей оси. Значения в градусах (deg), оборотах (turn), радианах (rad).
.rotate {
transform: rotate(15deg);
}
✅ Элемент повёрнут на 15 градусов
3. scale() — масштабирование
Увеличивает или уменьшает элемент. Значения: 1 — исходный размер, больше 1 — увеличение, меньше 1 — уменьшение.
Возможные варианты:
scale(x, y)— масштаб по горизонтали и вертикалиscaleX(x)— только по горизонталиscaleY(y)— только по вертикали
.scale-up {
transform: scale(1.5);
}
.scale-down {
transform: scale(0.7);
}
✅ Первый увеличен в 1.5 раза, второй уменьшен до 0.7
4. skew() — наклон
Наклоняет элемент. Значения в градусах (deg).
Возможные варианты:
skewX(x)— наклон по горизонтали (верх сдвигается, низ остаётся)skewY(y)— наклон по вертикали (правый край сдвигается, левый остаётся)skew(x, y)— наклон по горизонтали и вертикали одновременно
skewX(10deg) — наклон по горизонтали
.skew-x {
transform: skewX(10deg);
}
✅ Верх сдвинут вправо, низ остался на месте
skewY(5deg) — наклон по вертикали
.skew-y {
transform: skewY(5deg);
}
✅ Правый край сдвинут вниз, левый остался на месте
skew(10deg, 5deg) — наклон по обеим осям
.skew-both {
transform: skew(10deg, 5deg);
}
✅ Наклон по горизонтали и вертикали одновременно
5. transform-origin — точка трансформации
Задаёт точку, относительно которой происходит трансформация (по умолчанию — центр элемента: 50% 50%).
Возможные значения: ключевые слова (top, left, center, bottom, right), проценты, пиксели.
.rotate-center {
transform: rotate(15deg);
transform-origin: center;
}
.rotate-top-left {
transform: rotate(15deg);
transform-origin: top left;
}
transform-origin: center
transform-origin: top left
✅ Поворот относительно центра (левый блок) и относительно левого верхнего угла (правый блок)
6. Несколько трансформаций одновременно
Можно применять несколько трансформаций к одному элементу. Они применяются по порядку справа налево.
.multiple {
transform: translate(50px, 0) rotate(15deg) scale(1.2);
}
✅ Элемент сдвинут, повёрнут и увеличен
translate после rotate сдвинет элемент уже повёрнутым, что может изменить направление сдвига.