3.1 Основы комбинированных трансформаций
CSS предоставляет возможность комбинирования нескольких трансформаций для создания сложных визуальных эффектов. Эти трансформации могут включать в себя translate, rotate, scale и skew, которые могут быть объединены в одном свойстве transform.
Свойство transform может содержать несколько функций трансформации, разделенных пробелами. Они будут применяться последовательно, в порядке их указания. Понимание того, как различные трансформации взаимодействуют друг с другом, является ключом к созданию сложных анимаций и эффектов.
Синтаксис:
element {
transform: function1() function2() ... functionN();
}
Пример:
element {
transform: translate(20px, 20px) rotate(45deg) scale(1.5) skew(10deg, 5deg);
}
Перемещение и поворот
В этом примере элемент перемещается на 50 пикселей вправо и на 50 пикселей вниз, затем поворачивается на 45 градусов.
Пример:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Перемещение и поворот</title>
<style>
.box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: translate(50px, 50px) rotate(45deg);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
Объяснение кода:
.box: элемент сначала перемещается на 50 пикселей вправо и вниз, затем поворачивается на 45 градусов по часовой стрелке
3.2 Разбор различных комбинаций
1. Масштабирование и наклон
В этом примере элемент масштабируется в 1.5 раза по обеим осям, а затем наклоняется на 20 градусов по оси X и на 10 градусов по оси Y.
Пример:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Масштабирование и наклон</title>
<style>
.box {
width: 100px;
height: 100px;
background-color: #e74c3c;
transform: scale(1.5) skew(20deg, 10deg);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
Объяснение кода:
.box: элемент сначала масштабируется в 1.5 раза по обеим осям, затем наклоняется на 20 градусов по оси X и на 10 градусов по оси Y
2. Перемещение, поворот и масштабирование
В этом примере элемент перемещается на 100 пикселей вправо, поворачивается на 30 градусов и масштабируется в 2 раза по оси X и в 1.5 раза по оси Y.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Перемещение, поворот и масштабирование</title>
<style>
.box {
width: 100px;
height: 100px;
background-color: #2ecc71;
transform: translate(100px, 0) rotate(30deg) scale(2, 1.5);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
Объяснение кода:
-
.box: элемент сначала перемещается на 100 пикселей вправо, затем поворачивается на 30 градусов и масштабируется в 2 раза по оси X и в 1.5 раза по оси Y
3.3 Влияние порядка трансформаций
Когда несколько трансформаций комбинируются, важно понимать, что они применяются последовательно. Это означает, что каждая последующая трансформация будет влиять на результат предыдущей.
В этом примере демонстрируется, как изменение порядка трансформаций влияет на конечный результат.
Пример A: сначала поворот, затем перемещение
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Сначала поворот, затем перемещение</title>
<style>
.box-a {
width: 100px;
height: 100px;
background-color: #3498db;
transform: rotate(45deg) translate(50px, 50px);
}
</style>
</head>
<body>
<div class="box-a"></div>
</body>
</html>
Пример B: сначала перемещение, затем поворот
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Сначала перемещение, затем поворот</title>
<style>
.box-b {
width: 100px;
height: 100px;
background-color: #e74c3c;
transform: translate(50px, 50px) rotate(45deg);
}
</style>
</head>
<body>
<div class="box-b"></div>
</body>
</html>
Объяснение кода:
-
.box-a: элемент сначала поворачивается на 45 градусов, а затем перемещается на 50 пикселей вправо и вниз, что приводит к тому, что элемент перемещается по диагонали от своего нового положения после поворота -
.box-b: элемент сначала перемещается на 50 пикселей вправо и вниз, а затем поворачивается на 45 градусов, что приводит к тому, что элемент поворачивается относительно своего нового положения
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ