Функция scale()

Стилевая функция 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);

Значения

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

Браузеры

9 12 4 11.5 3.1 3.5
2.1 3.5 12 3.2