CSS 2D Transforms
Преобразования CSS
Преобразования CSS позволяют переводить, вращать, масштабировать и наклонять элементы.
Преобразование — это эффект, который позволяет элементу изменять форму, размер и положение.
CSS поддерживает 2D и 3D преобразования.
Наведите курсор мыши на элементы ниже, чтобы увидеть разницу между 2D и 3D преобразования:
Поддержка браузеров для 2D преобразований
Номера в таблице указывают первую версию браузера, которая полностью поддерживает свойство.
Номера следуют-MS-,-WebKit-,-МОЗ-, или-o-указать первую версию, которая работала с префиксом.
| Свойство | |||||
|---|---|---|---|---|---|
| transform | 36.0 4.0 -webkit- |
10.0 9.0 -ms- |
16.0 3.5 -moz- |
9.0 3.2 -webkit- |
23.0 15.0 -webkit- 12.1 10.5 -o- |
| transform-origin (two-value syntax) |
36.0 4.0 -webkit- |
10.0 9.0 -ms- |
16.0 3.5 -moz- |
9.0 3.2 -webkit- |
23.0 15.0 -webkit- 12.1 10.5 -o- |
2D преобразования CSS
В этой главе вы узнаете о следующих методах 2D преобразования:
translate()rotate()scale()skewX()skewY()matrix()
Совет: В следующей главе вы узнаете о трехмерных преобразованиях.
Метод Translate ()

Метод translate() перемещает элемент из текущей позиции (в соответствии с параметрами, заданными для оси X и оси Y).
В следующем примере перемещается элемент <div> 50 пикселей вправо и 100 пикселей вниз от его текущей позиции:
Пример
div
{
-ms-transform: translate(50px, 100px); /* IE 9 */
-webkit-transform: translate(50px, 100px); /* Safari */
transform: translate(50px, 100px);
}
Метод поворота ()
Метод rotate() вращает элемент по часовой стрелке или против часовой стрелки в зависимости от заданного градуса.
В следующем примере элемент <div> вращается по часовой стрелке с 20 градусами:
Пример
div
{
-ms-transform: rotate(20deg); /* IE 9 */
-webkit-transform: rotate(20deg); /* Safari */
transform: rotate(20deg);
}
При использовании отрицательных значений элемент будет вращаться против часовой стрелки.
В следующем примере элемент <div> вращается против часовой стрелки на 20 градусов:
Пример
div
{
-ms-transform: rotate(-20deg); /* IE 9 */
-webkit-transform: rotate(-20deg); /* Safari */
transform: rotate(-20deg);
}
Метод Scale ()

Метод scale() увеличивает или уменьшает размер элемента (в соответствии с параметрами, заданными для ширины и высоты).
В следующем примере элемент <div> увеличивается в два раза от его исходной ширины и в три раза от его исходной высоты:
Пример
div
{
-ms-transform: scale(2, 3); /* IE 9 */
-webkit-transform: scale(2, 3); /* Safari */
transform: scale(2, 3);
}
В следующем примере элемент <div> уменьшается до половины исходной ширины и высоты:
Пример
div
{
-ms-transform: scale(0.5, 0.5); /* IE 9 */
-webkit-transform: scale(0.5, 0.5); /* Safari */
transform: scale(0.5, 0.5);
}
Метод скевкс ()
Метод skewX() наклоняет элемент вдоль оси X заданным углом.
Следующий пример искажает элемент <div> 20 градусов вдоль оси X:
Пример
div
{
-ms-transform: skewX(20deg); /* IE 9 */
-webkit-transform: skewX(20deg); /* Safari */
transform: skewX(20deg);
}
Метод наклона ()
Метод skewY() наклоняет элемент вдоль оси Y на заданный угол.
Следующий пример искажает элемент <div> 20 градусов вдоль оси Y:
Пример
div
{
-ms-transform: skewY(20deg); /* IE 9 */
-webkit-transform: skewY(20deg); /* Safari */
transform: skewY(20deg);
}
Метод наклона ()
Метод skew() искажает элемент вдоль оси X и Y по заданным углам.
В следующем примере наклон элемента <div> 20 градусов вдоль оси X и 10 градусов вдоль оси Y:
Пример
div
{
-ms-transform: skew(20deg, 10deg); /* IE 9 */
-webkit-transform: skew(20deg, 10deg); /* Safari */
transform: skew(20deg, 10deg);
}
Если второй параметр не указан, он имеет нулевое значение. Таким образом, следующий пример искажает элемент <div> 20 градусов вдоль оси X:
Пример
div
{
-ms-transform: skew(20deg); /* IE 9 */
-webkit-transform: skew(20deg); /* Safari */
transform: skew(20deg);
}
Метод Matrix ()
Метод matrix() объединяет все методы 2D преобразования в один.
Метод Matrix () принимает шесть параметров, содержащих математические функции, которые позволяют вращать, масштабировать, перемещать (переводить) и наклонить элементы.
Параметры следующие: Матрица (scaleX (), перекос (), скевкс (), масштабирование (), транслатекс (), транспоздний ())
Пример
div
{
-ms-transform: matrix(1, -0.3, 0, 1, 0, 0); /* IE 9 */
-webkit-transform: matrix(1, -0.3, 0, 1, 0, 0); /* Safari */
transform: matrix(1, -0.3, 0, 1, 0, 0);
}
Свойства преобразования CSS
В следующей таблице перечислены все 2D-преобразования свойств:
| Свойство | Описание |
|---|---|
| transform | Применяет 2D или 3D преобразование к элементу |
| transform-origin | Позволяет изменить положение на преобразованных элементах |
2D Transform Methods
| Function | Описание |
|---|---|
| matrix(n,n,n,n,n,n) | Определяет 2D преобразование, используя матрицу из шести значений |
| translate(x,y) | Определение 2D перевода, перемещение элемента вдоль оси X и Y |
| translateX(n) | Определение 2D перевода, перемещение элемента по оси X |
| translateY(n) | Определение 2D перевода, перемещение элемента по оси Y |
| scale(x,y) | Определяет преобразование 2D масштаба, изменение ширины и высоты элементов |
| scaleX(n) | Определяет преобразование 2D масштаба, изменяя ширину элемента |
| scaleY(n) | Определяет преобразование 2D масштаба, изменяя высоту элемента |
| rotate(angle) | Определяет 2D вращение, угол задается в параметре |
| skew(x-angle,y-angle) | Определяет преобразование 2D наклона вдоль оси X и Y |
| skewX(angle) | Определяет преобразование 2D наклона вдоль оси X |
| skewY(angle) | Определяет преобразование 2D наклона вдоль оси Y |