Генератор трансформаций
Визуально создавайте и предварительно просматривайте CSS свойства transform.
CSS Transform - это мощное CSS свойство, которое позволяет преобразовывать веб-элементы в 2D или 3D пространстве. С помощью трансформаций, таких как translate, rotate, scale и skew, вы можете создавать динамичные и интерактивные веб-дизайны. Легко создавайте желаемые эффекты с предварительным просмотром в реальном времени.
transform: none;
Функции трансформации
- • translate(x, y): translate(x, y): Перемещает элемент на x, y
- • scale(x, y): scale(x, y): Масштабирует элемент в x, y раз
- • rotate(angle): rotate(angle): Поворачивает элемент на угол
- • skew(x, y): skew(x, y): Искажает элемент на x, y градусов
Советы по использованию
- • Несколько функций трансформации можно комбинировать через пробелы
- • Изменяйте точку трансформации с transform-origin
- • Используйте с transition для создания анимационных эффектов
- • Используйте свойство perspective для 3D трансформаций
🎯 Основные концепции Transform
CSS Transform - это CSS свойство, которое изменяет форму, размер и положение элементов. Оно позволяет визуальную трансформацию элементов без нарушения нормального потока документа.
Базовый синтаксис:
transform: function(value) function(value) ...;
📐 Детали функций трансформации
🔄 Translate (Перемещение)
- •
translate(x, y)
: translate(x, y): Перемещение по осям X, Y - •
translateX(x)
: translateX(x): Перемещение только по оси X - •
translateY(y)
: translateY(y): Перемещение только по оси Y - •
translate3d(x, y, z)
: translate3d(x, y, z): 3D перемещение
transform: translate(50px, 100px);
📏 Scale (Масштабирование)
- •
scale(x, y)
: scale(x, y): Масштабирование по осям X, Y - •
scaleX(x)
: scaleX(x): Масштабирование только по оси X - •
scaleY(y)
: scaleY(y): Масштабирование только по оси Y - • Больше 1 увеличивает, меньше 1 уменьшает
transform: scale(1.5, 0.8);
🔄 Rotate (Поворот)
- •
rotate(angle)
: rotate(angle): Поворот вокруг оси Z - •
rotateX(angle)
: rotateX(angle): Поворот вокруг оси X - •
rotateY(angle)
: rotateY(angle): Поворот вокруг оси Y - • Используйте единицы deg, rad, turn для углов
transform: rotate(45deg);
📐 Skew (Искажение)
- •
skew(x, y)
: skew(x, y): Искажение по осям X, Y - •
skewX(angle)
: skewX(angle): Искажение по оси X - •
skewY(angle)
: skewY(angle): Искажение по оси Y - • Преобразование в форму параллелограмма
transform: skew(15deg, 5deg);
🎨 Transform Origin (Точка трансформации)
Свойство transform-origin устанавливает точку начала трансформации. По умолчанию это центр элемента (50% 50%).
Использование ключевых слов
transform-origin: top left;
Использование процентов
transform-origin: 25% 75%;
Использование пикселей
transform-origin: 10px 20px;
⚡ Советы по оптимизации производительности
✅ Рекомендации
- • Анимируйте только transform и opacity
- • Используйте свойство will-change
- • Используйте 3D ускорение (translateZ(0))
- • Создавайте композитные слои для лучшей производительности
❌ Чего следует избегать
- • Анимация width, height
- • Анимация позиций left, top
- • Чрезмерное вложение transform
- • Ненужное использование will-change
Пример оптимизации производительности:
.optimized {
will-change: transform;
transform: translateZ(0); /* 3D 가속 */
transition: transform 0.3s ease;
}
🎬 Анимация и переходы
Transform можно использовать с CSS Transition и Animation для создания плавных эффектов.
Пример перехода
.hover-effect {
transition: transform 0.3s ease;
}
.hover-effect:hover {
transform: scale(1.1) rotate(5deg);
}
Пример keyframe анимации
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.bounce { animation: bounce 1s infinite; }
🌐 Совместимость с браузерами
CSS Transform поддерживается во всех современных браузерах, но для старых браузеров могут понадобиться вендорные префиксы.
Пример вендорных префиксов:
-webkit-transform: rotate(45deg); /* Safari, Chrome */
-moz-transform: rotate(45deg); /* Firefox */
-ms-transform: rotate(45deg); /* IE 9 */
transform: rotate(45deg); /* 표준 */
🎯 Примеры реального использования
Эффект наведения на карточку
.card {
transition: transform 0.3s ease;
cursor: pointer;
}
.card:hover {
transform: translateY(-10px) scale(1.02);
}
Загрузочный спиннер
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.spinner {
animation: spin 1s linear infinite;
}
Эффект появления модального окна
.modal {
transform: scale(0) rotate(180deg);
transition: transform 0.3s ease;
}
.modal.show {
transform: scale(1) rotate(0deg);
}
Эффект нажатия кнопки
.button {
transition: transform 0.1s ease;
}
.button:active {
transform: scale(0.95);
}
🔧 Отладка и инструменты разработки
Инструменты разработчика браузера
- • Редактирование в реальном времени в панели Elements
- • Проверка финальных значений во вкладке Computed
- • Анализ производительности с вкладкой Performance
- • Проверка структуры слоев с 3D View
Полезные CSS свойства
- •
transform-style: preserve-3d
- •
perspective: 1000px
- •
backface-visibility: hidden
- •
will-change: transform
💡 Профессиональные советы
Совет по производительности
Использование transform3d() или translateZ(0) для создания композитных слоев для GPU ускорения может значительно улучшить производительность анимации.
Совет по доступности
Используйте медиа-запрос prefers-reduced-motion для предоставления альтернатив пользователям, чувствительным к движению.
Совет по дизайну
Правильная установка transform-origin может создать более естественные эффекты трансформации.
Совет по разработке
Использование CSS переменных для динамического контроля значений transform облегчает интеграцию с JavaScript.