DevSkillRoad

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

🔄 transform: translate, rotate, scale, skew

Трансформации позволяют изменять положение, размер, угол наклона и поворот элемента. Они не влияют на соседние элементы (как при `position: relative`).

1. translate() — перемещение

Сдвигает элемент относительно его исходного положения. Значения могут быть в пикселях, процентах, `em`, `rem`.

Возможные варианты:

.translate {
    transform: translate(20px, 30px);
}
Исходное положение
transform: translate(20px, 30px)

✅ Элемент сдвинут на 20px вправо и 30px вниз

2. rotate() — поворот

Поворачивает элемент вокруг своей оси. Значения в градусах (deg), оборотах (turn), радианах (rad).

.rotate {
    transform: rotate(15deg);
}
Исходный элемент
transform: rotate(15deg)

✅ Элемент повёрнут на 15 градусов

3. scale() — масштабирование

Увеличивает или уменьшает элемент. Значения: 1 — исходный размер, больше 1 — увеличение, меньше 1 — уменьшение.

Возможные варианты:

.scale-up {
    transform: scale(1.5);
}
.scale-down {
    transform: scale(0.7);
}
Исходный (1.0)
scale(1.5)
scale(0.7)

✅ Первый увеличен в 1.5 раза, второй уменьшен до 0.7

4. skew() — наклон

Наклоняет элемент. Значения в градусах (deg).

Возможные варианты:

skewX(10deg) — наклон по горизонтали

.skew-x {
    transform: skewX(10deg);
}
Исходный
skewX(10deg)

✅ Верх сдвинут вправо, низ остался на месте

skewY(5deg) — наклон по вертикали

.skew-y {
    transform: skewY(5deg);
}
Исходный
skewY(5deg)

✅ Правый край сдвинут вниз, левый остался на месте

skew(10deg, 5deg) — наклон по обеим осям

.skew-both {
    transform: skew(10deg, 5deg);
}
Исходный
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

top left

transform-origin: top left

✅ Поворот относительно центра (левый блок) и относительно левого верхнего угла (правый блок)

6. Несколько трансформаций одновременно

Можно применять несколько трансформаций к одному элементу. Они применяются по порядку справа налево.

.multiple {
    transform: translate(50px, 0) rotate(15deg) scale(1.2);
}
Исходный
translate + rotate + scale

✅ Элемент сдвинут, повёрнут и увеличен

📌 Важно: Порядок трансформаций имеет значение. Например, translate после rotate сдвинет элемент уже повёрнутым, что может изменить направление сдвига.
📓 Из тетради: «Трансформации не меняют положение других элементов на странице. Они только двигают, поворачивают и масштабируют сам элемент. Используйте их для оживления интерфейса, но не для построения сетки — для сетки есть Flexbox и Grid».