transform
=========

CSS-свойство **`transform`** позволяет вам поворачивать, масштабировать, наклонять или сдвигать элемент. Оно модифицирует координатное пространство для CSS визуальной форматируемой модели.

Интерактивный пример
--------------------

Если свойство имеет значение, отличное от `none`, будет создан контекст наложения. В этом случае, элемент будет действовать как содержащий блок для любых элементов `position: fixed;` или `position: absolute;` которые он содержит.

**Предупреждение:** Только трансформируемый элемент может быть `transform`. Т.е. все элементы, шаблоны которых регулируются блочной моделью CSS, кроме : неизменяемые инлайновые блоки, блоки таблица-колонка, и блоки таблица-колонка-группа (en-US).

Синтаксис
---------


```css
/\* Ключевые слова \*/
transform: none;

/\* Значения функций \*/
transform: matrix(1, 2, 3, 4, 5, 6);
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
transform: perspective(17px);
transform: rotate(0.5turn);
transform: rotate3d(1, 2, 3, 10deg);
transform: rotateX(10deg);
transform: rotateY(10deg);
transform: rotateZ(10deg);
transform: translate(12px, 50%);
transform: translate3d(12px, 50%, 3em);
transform: translateX(2em);
transform: translateY(3in);
transform: translateZ(2px);
transform: scale(2, 0.5);
transform: scale3d(2.5, 1.2, 0.3);
transform: scaleX(2);
transform: scaleY(0.5);
transform: scaleZ(0.3);
transform: skew(30deg, 20deg);
transform: skewX(30deg);
transform: skewY(1.07rad);

/\* Мультифункциональные значения \*/
transform: translateX(10px) rotate(10deg) translateY(5px);
transform: perspective(500px) translate(10px, 0, 20px) rotateY(3deg);

/\* Глобальные значения \*/
transform: inherit;
transform: initial;
transform: unset;
```


Свойство `transform` может быть указано как значение ключевого слова `none` или как одно или более значений `<transform-function>`.

### Значения

`<transform-function>` (en-US)

Одна или более применяемых функций CSS-трансформации (en-US). Функции трансформации умножаются в порядке слева направо, что означает, что составное трансформирование эффективнее применять в порядке справа налево.

`none`

Указывает, что трансформация не должна применяться.

### Формальный синтаксис
```

transform =   
  none              | (en-US)  
  <transform-list>    
  
<transform-list> =   
  <transform-function> (en-US)+ (en-US)    
  
```


Если `perspective()` (en-US) является одним из мультифункциональных значений, оно должно быть указано первым.

Примеры
-------

### HTML


```html
<div>Transformed element</div>
```

### CSS


```css
div {
  border: solid red;
  transform: translate(30px, 20px) rotate(20deg);
  width: 140px;
  height: 60px;
}
```

### Результат

Для того, чтобы посмотреть другие примеры, обратитесь к Использование CSS-трансформации (en-US) и `<transform-function>` (en-US).

Accessibility concerns
----------------------

Scaling/zooming анимации являются проблемой для accessibility, поскольку они становятся частым триггером для определённых типов мигрени. Если вам нужно добавить такие анимации на вашем веб-сайте, вы должны предоставить элемент управления, позволяющий пользователям отключать анимации, предпочтительно для всего сайта.

Кроме того, рассмотрите возможность использования @media-опции `prefers-reduced-motion` — используйте её для написания `медиавыражения`, которое отключит анимацию, если пользователь уменьшил анимацию в системных настройках.

Узнать больше:

* MDN Understanding WCAG, Guideline 2.3 explanations (en-US)
* Understanding Success Criterion 2.3.3 | W3C Understanding WCAG 2.1
Спецификации
------------

| Specification |
| --- |
| CSS Transforms Module Level 2 # transform-functions |
| CSS Transforms Module Level 1 # transform-property |

|  |  |
| --- | --- |
| Начальное значение | `none` |
| Применяется к | трансформируемые элементы |
| Наследуется | нет |
| Проценты | ссылается на размер ограничительной рамки |
| Обработка значения | как указано, но с относительной длиной, конвертируемой в абсолютные длины |
| Animation type | трансформация |
| Создаёт контекст наложения | да |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Использование CSS-трансформации (en-US)
* `<transform-function>` (en-US) типы данных
* Плагин jQuery для кросс-браузерной 2D-трансформации