JavaRush /Курсы /Модуль 1: Web Core /Комбинированные трансформации

Комбинированные трансформации

Модуль 1: Web Core
12 уровень , 2 лекция
Открыта

3.1 Основы комбинированных трансформаций

CSS предоставляет возможность комбинирования нескольких трансформаций для создания сложных визуальных эффектов. Эти трансформации могут включать в себя translate, rotate, scale и skew, которые могут быть объединены в одном свойстве transform.

Свойство transform может содержать несколько функций трансформации, разделенных пробелами. Они будут применяться последовательно, в порядке их указания. Понимание того, как различные трансформации взаимодействуют друг с другом, является ключом к созданию сложных анимаций и эффектов.

Синтаксис:

    
      element {
        transform: function1() function2() ... functionN();
      }
    
  

Пример:

CSS
    
      element {
        transform: translate(20px, 20px) rotate(45deg) scale(1.5) skew(10deg, 5deg);
      }
    
  

Перемещение и поворот

В этом примере элемент перемещается на 50 пикселей вправо и на 50 пикселей вниз, затем поворачивается на 45 градусов.

Пример:

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: #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.

Пример:

HTML
    
      <!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.

HTML
    
      <!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: сначала поворот, затем перемещение

HTML
    
      <!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: сначала перемещение, затем поворот

HTML
    
      <!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 градусов, что приводит к тому, что элемент поворачивается относительно своего нового положения
1
Задача
Модуль 1: Web Core, 12 уровень, 2 лекция
Недоступна
Полная трансформация
Полная трансформация
1
Задача
Модуль 1: Web Core, 12 уровень, 2 лекция
Недоступна
Порядок трансформаций
Порядок трансформаций
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No Name Уровень 12
24 мая 2025
+ лекция в копилке