Spec-Zone.ru › CSS

transform

Базовая Широкодоступная

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

Попробовать

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

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

Синтаксис

/* Keyword values */
transform: none;

/* Function values */
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);

/* Multiple function values */
transform: translateX(10px) rotate(10deg) translateY(5px);
transform: perspective(500px) translate3d(10px, 0, 20px) rotateY(30deg);

/* Global values */
transform: inherit;
transform: initial;
transform: revert;
transform: revert-layer;
transform: unset;

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

Значения

<transform-function>

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

none

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

Доступность

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

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

Подробнее:

  • MDN, объяснения к руководству 2.3 WCAG
  • Понимание критерия успеха 2.3.3 | W3C понимание WCAG 2.1

Формальное определение

Начальное значение none
Применимо к преобразуемым элементам
Наследуется нет
Проценты относятся к размеру ограничивающего поля
Вычисленное значение как указано, но с относительными размерами, преобразованными в абсолютные
Тип анимации преобразование
Создаёт контекст стекирования да

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

transform = 
none |
<transform-list>

<transform-list> =
<transform-function>+

Примеры

Перемещение и вращение элемента

HTML

<div>Transformed element</div>

CSS

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

Результат

Порядок преобразований

Порядок применения функций преобразования важен. В этом примере два блока поворачиваются и перемещаются на одинаковые значения; различается только порядок функций преобразования.

HTML

<div class="original"></div>
<div class="one">1</div>
<div class="two">2</div>

CSS

.one {
  transform: translateX(200px) rotate(135deg);
}
.two {
  transform: rotate(135deg) translateX(200px);
}

Результат

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

Дополнительные примеры

Дополнительные примеры см. в разделах Использование CSS преобразований и <transform-function>.

Спецификации

Спецификация
CSS Transforms Module Level 2
# transform-functions
CSS Transforms Module Level 1
# transform-property

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
3d 12 12 16 15 4 18 16 14 3.2 1.0 4.4
transform 361 1212 1649≤40–preview 231512.1–1510.5–15 93.1 3618 164940 241412.1–1411–14 93.2 3.01.0 4.4
2Android 2.3 имеет ошибку, из-за которой формы ввода будут «подпрыгивать» при вводе, если у любого контейнера есть -webkit-transform.

См. также

  • Использование CSS преобразований
  • <transform-function> тип данных со всеми объяснениями функций преобразования.
  • Индивидуальные свойства CSS: translate, rotate и scale (свойства skew нет).
  • Онлайн-инструмент для визуализации функций CSS Transform: CSS Transform Playground

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/transform

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API