Transform: масштабирование, поворот, смещение

Transform — одно из тех свойств CSS, которое на первый взгляд кажется чисто декоративным, а на практике оказывается одним из самых полезных инструментов и для статичного оформления, и для анимации. Оно позволяет менять положение, размер и поворот элемента, не затрагивая раскладку страницы вокруг него.

Scale увеличивает или уменьшает элемент — значение больше единицы делает его крупнее, меньше единицы — мельче. Именно scale чаще всего используют для лёгкого увеличения карточки или кнопки при наведении, потому что в отличие от изменения width и height это не заставляет соседние элементы сдвигаться.

Rotate поворачивает элемент на заданный угол, translate смещает его по горизонтали и вертикали. Комбинация нескольких трансформаций в одном свойстве через пробел применяется одновременно, что позволяет, например, и сдвинуть, и повернуть элемент за один переход.

Важное отличие transform от обычного изменения position или margin в том, что трансформация не влияет на поток документа — элемент визуально сдвигается или меняет размер, но место, которое он занимает с точки зрения раскладки соседних элементов, остаётся прежним. Это делает transform особенно удобным именно для анимации.

Свойство transform-origin определяет точку, относительно которой происходит масштабирование или поворот — по умолчанию это центр элемента, но её можно сместить к любому краю или углу, и тогда, например, поворот будет происходить не вокруг центра, а вокруг заданной точки.

Браузеры оптимизируют обработку transform особенно хорошо, часто выполняя такие анимации на видеокарте, а не на центральном процессоре, что делает transitions и animation на transform одними из самых плавных доступных вариантов анимации в вебе.

Полный список функций transform с интерактивными примерами есть в статье про transform на MDN.

Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×