Поиск…


Синтаксис

  • Повернуть преобразование
  • transform: rotate (<angle>)
  • Преобразование перевода
  • transform: translate (<length-or-percent> [, <length-or-percent>]?)
  • transform: translateX (<длина или процент)>
  • transform: translateY (<длина или процент)>
  • Косовое преобразование
  • transform: skew (<angle> [, <angle>]?)
  • transform: skewX (<angle>)
  • transform: skewY (<angle>)
  • Трансформация шкалы
  • transform: масштаб (<масштабный коэффициент> [, <масштаб-фактор>]?)
  • transform: scaleX (<масштаб-фактор>)
  • transform: scaleY (<масштаб-фактор>)
  • Матричное преобразование
  • transform: matrix (<number> [, <number>] {5,5})

параметры

Функция / параметр подробности
rotate(x) Определяет преобразование, которое перемещает элемент вокруг неподвижной точки на оси Z
translate(x,y) Перемещает положение элемента по оси X и Y
translateX(x) Перемещает положение элемента по оси X
translateY(y) Перемещает положение элемента по оси Y
scale(x,y) Изменяет размер элемента по оси X и Y
scaleX(x) Изменяет размер элемента по оси X
scaleY(y) Изменяет размер элемента по оси Y
skew(x,y) Отображение сдвига или трансвекция, искажая каждую точку элемента на определенный угол в каждом направлении
skewX(x) Отображение горизонтального сдвига, искажающее каждую точку элемента на определенный угол в горизонтальном направлении
skewY(y) Отображение вертикального сдвига, искажающее каждую точку элемента на определенный угол в вертикальном направлении
matrix() Определяет двумерное преобразование в виде матрицы преобразования.
угол Угол поворота или искажения элемента (в зависимости от функции, с которой он используется). Угол может быть в градусах ( deg ), gradians ( grad ), радиан ( rad ) или поворотов ( turn ). В функции skew() второй угол является необязательным. Если это не предусмотрено, не будет (0) перекоса по оси Y.
Длина или-процентное Расстояние, выраженное как длина или процент, по которому элемент должен быть переведен. В функции translate() вторая длина или процент необязательна. Если не предусмотрено, то не будет (0) сдвига по оси Y.
масштаб Число, которое определяет, сколько раз элемент должен быть масштабирован по указанной оси. В функции scale() второй масштабный коэффициент является необязательным. Если это не предусмотрено, первый масштабный коэффициент будет применяться и для оси Y.

замечания

Система 2D Coordiante

Преобразования выполняются в соответствии с системой координат 2D X / Y. Ось X идет справа налево, а ось Y идет вниз, как показано на следующем изображении:

Система координат 2D CSS

Таким образом, положительный translateY() идет вниз, и положительный translateX() идет вправо.

Поддержка и префиксы браузера

  • IE поддерживает это свойство с IE9 с префиксом -ms- . Старые версии и Edge не нуждаются в префиксе
  • Firefox поддерживает его с версии 3.5 и нуждается в -moz- prefix до версии 15
  • Chrome с версии 4 и до версии 34 нуждается в -webkit-
  • Для Safari необходим префикс -webkit- до версии 8
  • Opera нуждается в -o- префикс для версии 11.5 и -webkit- префикс от версии 15 до 22
  • Android нуждается в -webkit- от версии 2.1 до 4.4.4

Пример префиксного преобразования:

-webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
        transform: rotate(45deg);

Поворот

HTML

<div class="rotate"></div>

CSS

.rotate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: rotate(45deg);
}

Этот пример повернет div на 45 градусов по часовой стрелке. Центр вращения находится в центре div, 50% слева и 50% сверху. Вы можете изменить центр вращения, установив свойство transform-origin .

transform-origin: 100% 50%;

Вышеприведенный пример установит центр вращения в середину правого бокового конца.

Масштаб

HTML

<div class="scale"></div>

CSS

.scale {
    width: 100px;
    height: 100px;
    background: teal;
    transform: scale(0.5, 1.3);
}

Этот пример будет масштабировать div до 100px * 0.5 = 50px по оси X и до 100px * 1.3 = 130px по оси Y.

Центр преобразования находится в центре div, 50% слева и 50% сверху.

Переведите

HTML

<div class="translate"></div>

CSS

.translate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: translate(200px, 50%);
}

Этот пример переместит div на 200px по оси X и на 100px * 50% = 50px по оси Y.

Вы также можете указать переводы на одной оси.

На оси X:

.translate {
    transform: translateX(200px);
}

На оси Y:

.translate {
    transform: translateY(50%);
}

скос

HTML

<div class="skew"></div>

CSS

.skew {
    width: 100px;
    height: 100px;
    background: teal;
    transform: skew(20deg, -30deg);
}

Этот пример будет искажать div на 20 градусов по оси X и на 30 градусов по оси Y.
Центр преобразования находится в центре div, 50% слева и 50% сверху.

См. Результат здесь .

Несколько преобразований

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

transform: rotate(15deg) translateX(200px);

Это повернет элемент на 15 градусов по часовой стрелке, а затем переведёт его на 200 пикселей вправо.

В цепных преобразованиях система координат перемещается вместе с элементом . Это означает, что перевод не будет горизонтальным, а на оси поверните на 15 градусов по часовой стрелке, как показано на следующем изображении:

Множественные преобразования вращаются, а затем переводят

Изменение порядка преобразований изменит выход. Первый пример будет отличаться от

transform: translateX(200px) rotate(15deg);
<div class="transform"></div>
.transform {
  transform: rotate(15deg) translateX(200px);
}

Как показано на этом изображении:

Множественные преобразования переводят, а затем вращают

Трансформация происхождения

Преобразования выполняются относительно точки, которая определяется свойством transform-origin .

Свойство принимает 2 значения: transform-origin: XY;

В следующем примере первый div ( .tl ) вращается вокруг верхнего левого угла с transform-origin: 0 0; и второй ( .tr ) преобразуется вокруг его верхнего правого угла с transform-origin: 100% 0 . Вращение применяется при наведении :

HTML:

<div class="transform originl"></div>
<div class="transform origin2"></div>

CSS:

.transform {
    display: inline-block;
    width: 200px;
    height: 100px;
    background: teal;
    transition: transform 1s;
}

.origin1 {
    transform-origin: 0 0;
}

.origin2 {
    transform-origin: 100% 0;
}

.transform:hover {
    transform: rotate(30deg);
}

Значение по умолчанию для свойства transform-origin составляет 50% 50% которое является центром элемента.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow