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(1);
}

Пример

<!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 (Черновик спецификации) — первая черновая версия стандарта.

Браузеры ?

Браузеры

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

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

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

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

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