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

    Браузеры ?

    Браузеры

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

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

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

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

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