8

Как применить несколько трансформаций в CSS?

25

Задача: Как с помощью CSS применить более одной трансформации с использованием свойства transform?

Пример: В следующем коде применяется только трансляция, а вращение игнорируется.

li:nth-child(2) {
    transform: rotate(15deg);
    transform: translate(-20px, 0px);        
}

Как можно исправить код, чтобы обе трансформации (вращение и трансляция) применялись одновременно?

5 ответ(ов)

0

Вы также можете применить несколько преобразований, используя дополнительный уровень разметки, например:

<h3 class="rotated-heading">
    <span class="scaled-up">Привет!</span>
</h3>
<style type="text/css">
.rotated-heading {
    transform: rotate(10deg);
}

.scaled-up {
    transform: scale(1.5);
}
</style>

Это может быть действительно полезно при анимации элементов с помощью преобразований в Javascript.

0

Вы можете применить несколько трансформаций следующим образом:

li:nth-of-type(2) {
    transform: translate(-20px, 0px) rotate(15deg);
}

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

0

Извлечённый урок.

Если вы используете стиль CSS в React, не добавляйте точку с запятой, даже в конце, так как она автоматически добавляется React.

Пример правильного использования:

style={                             
  transform: "rotate(90deg) scaleX(-1)"
}
0

Этот код CSS применяет два трансформации к элементу li, который является вторым дочерним элементом: он поворачивается на 15 градусов и смещается на -20 пикселей по оси X.

Имейте в виду, что трансформации в CSS могут быть применены одновременно, и порядок их применения может влиять на результат. В данном случае:

li:nth-child(2) {
    transform: rotate(15deg) translate(-20px, 0px);        
}

означает, что элемент сначала поворачивается на 15 градусов, а затем сдвигается на -20 пикселей по оси X (влево) и на 0 пикселей по оси Y (без вертикального смещения). Для получения дополнительной информации о множественных трансформациях в CSS вы можете ознакомиться с этой статьей: W3Docs.

0

Чтобы выполнить одновременно поворот и перемещение элемента в CSS, вы можете использовать свойство transform, указав необходимые функции (rotate и translate) в одной строке. Вот как это сделать:

div.className {
    transform: rotate(270deg) translate(-50%, -50%);
    -webkit-transform: rotate(270deg) translate(-50%, -50%); /* Для поддержки старых браузеров */
    -moz-transform: rotate(270deg) translate(-50%, -50%);
    -ms-transform: rotate(270deg) translate(-50%, -50%);
    -o-transform: rotate(270deg) translate(-50%, -50%);
    float: left;
    position: absolute;
    top: 50%;
    left: 50%;
}

Обратите внимание, что при подобном использовании translate значения переводят элемент: первое значение по оси X, а второе — по оси Y. В вашем первоначальном коде значение translate(-50%, 0) было указано неправильно, если вы хотите, чтобы элемент смещался по обеим осям относительно его центра. Правильное значение — translate(-50%, -50%).

Пример HTML остаётся без изменений:

<html>
<head>
</head>
<body>
<div class="className">
  <span style="font-size:50px">A</span>
</div>
</body>
</html>

Эта конструкция позволит вам поворачивать и перемещать элемент в одном выражении CSS.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь