CSS
2D-преобразования
Поиск…
Синтаксис
- Повернуть преобразование
- 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 идет вниз, как показано на следующем изображении:
Таким образом, положительный 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%
которое является центром элемента.