scale()

Масштабирует элемент в двумерном пространстве по горизонтали и вертикали или одновременно в двух направлениях. Изменение масштаба может происходить как в большую, так и в меньшую сторону.

Масштабирование с помощью scale(sx, xy) продемонстрировано в табл. 1.

Табл. 1. Масштабирование картинки
transform: scale(1) Исходное изображение.
transform: scale(1.2) Увеличение масштаба в 1,2 раза.
transform: scale(1.2, 1) Увеличение масштаба только по горизонтали в 1,2 раза.
transform: scale(0.5) Уменьшение масштаба в два раза.
transform: scale(-1, 1) Зеркальное отражение по горизонтали.
transform: scale(1, -1) Зеркальное отражение по вертикали.
transform: scale(-1) Зеркальное отражение по горизонтали и вертикали.

Синтаксис

transform: scale(sx);
transform: scale(sx, xy);

Обозначения

Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

sx
Масштаб элемента по горизонтали.
  • значение больше 1 (например: 1.5) приводит к увеличению масштаба;
  • значение меньше 1 (например: 0.8) приводит к уменьшению масштаба;
  • отрицательное значение (например: -1) зеркально отражает элемент по горизонтали;
  • значение 1 оставляет размер элемента исходным и не даёт видимого эффекта.
sy
Масштаб элемента по вертикали. Если значение не указано, то по умолчанию принимается равным sx.

Одно значение задаёт масштабирование элемента одновременно по горизонтали и вертикали, с сохранением пропорций сторон элемента. Два значения задают масштаб элемента по горизонтали и вертикали независимо, что может привести к искажению пропорций сторон.

Песочница

img {
  transform: scale({{ playgroundValue }});
}

Пример

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>scale()</title> <style> div { display: inline-block; /* Выстраиваем по горизонтали */ overflow: hidden; /* Обрезаем */ } div img { display: block; /* Убираем отступ снизу */ transition: 1s; /* Время перехода */ } div img:hover { transform: scale(1.4); /* Масштабируем */ } </style> </head> <body> <div><img src="image/meduza1.jpg" alt=""></div> <div><img src="image/meduza2.jpg" alt=""></div> <div><img src="image/meduza3.jpg" alt=""></div> </body> </html>

В данном примере при наведении указателя на картинку она плавно увеличивает свой масштаб. Чтобы размеры блока оставались исходными используется свойство overflow со значением hidden.

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

Спецификация Статус
CSS Transforms Module Level 1 Рабочий проект

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

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor's draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры

9 12 4 11.5 3.1 3.5
2.1 3.5 12 3.2

Браузеры

В таблице браузеров применяются следующие обозначения.

  •  — свойство полностью поддерживается браузером со всеми допустимыми значениями;
  •  — свойство браузером не воспринимается и игнорируется;
  •  — при работе возможно появление различных ошибок, либо свойство поддерживается лишь частично, например, не все допустимые значения действуют или свойство применяется не ко всем элементам, которые указаны в спецификации.

Число указывает версию браузера, начиная с которой свойство поддерживается.

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 02.03.2020
Редакторы: Влад Мержевич