Кратко
СкопированоФункция scale в CSS используется для масштабирования (изменения размера) элементов на странице. Это одна из функций трансформации, которая позволяет увеличивать или уменьшать элементы в 2D-пространстве.
Пример
СкопированоУвеличиваем элемент в полтора раза:
.element { transform: scale(1.5);}
.element {
transform: scale(1.5);
}
Как пишется
Скопированоx и y — положительные числа, либо значение 0.
Как понять
СкопированоЕсли в функцию передать 0, то элемент визуально исчезнет. 1 соответствует нормальному масштабу. Значения от 0 до 1 — уменьшенный масштаб. Чем больше единицы, тем больше масштаб. Чтобы визуально увеличить элемент в три раза, нужно написать transform.
Когда значение координаты выходит за пределы диапазона [, элемент увеличивается вдоль этой оси. Когда значение находится внутри диапазона ( — элемент уменьшается. Отрицательное значение даёт зеркальное отражение элемента по соответствующей оси. Значение 1 оставит элемент без изменений.
Нюансы
Скопировано📝 Точка трансформации по умолчанию — центр элемента. Можно его изменить с помощью свойства transform.
📝 scale масштабирует весь элемент, включая содержимое, границы (border), тени (box) и внутренние отступы (padding).
📝 Не влияет на поток документа: окружающие элементы не сдвигаются.
📝 Единицы измерения — безразмерные коэффициенты (1 = 100%, 1.5 = 150% и так далее).
Доступность
СкопированоАнимации с масштабированием и увеличением создают проблемы с доступностью, так как могут вызвать приступ мигрени или укачивания у пользователя. Если необходимо использовать такие анимации на сайте, следует предусмотреть элемент управления, позволяющий отключать анимации — желательно для всего сайта целиком.
Также рекомендуется использовать prefers. Создайте медиазапрос @media, который будет отключать анимации, если у пользователя включена эта настройка в операционной системе.
Стандартная анимация:
.animated-element { transition: transform 0.3s ease; transform: scale(1);}.animated-element:hover { transform: scale(1.1);}
.animated-element {
transition: transform 0.3s ease;
transform: scale(1);
}
.animated-element:hover {
transform: scale(1.1);
}
Отключённая анимация с prefers:
@media (prefers-reduced-motion: reduce) { .animated-element { transition: none !important; transform: none !important; }}
@media (prefers-reduced-motion: reduce) {
.animated-element {
transition: none !important;
transform: none !important;
}
}
Советы
Скопировано💡 Уважайте системные настройки пользователя.
💡 Предоставляйте альтернативные способы взаимодействия без анимаций. Например, добавьте переключатель анимаций в настройки сайта.
💡 Для важной информации не полагайтесь исключительно на анимационные эффекты.
skaleX() , skaleY() , skaleZ()
СкопированоCSS-функция scale определяет изменение размера элемента по оси x (по горизонтали), scale — изменение размера элемента по оси y (по вертикали), scale — изменение размера элемента по оси z.
.block { transform: scaleX(0.7);}div { transform: scaleY(0.2);}.element { transform: scaleZ(-1.5);}
.block {
transform: scaleX(0.7);
}
div {
transform: scaleY(0.2);
}
.element {
transform: scaleZ(-1.5);
}
scale3d()
СкопированоФункция scale3d в CSS позволяет масштабировать элементы в трёхмерном пространстве по осям x, y и z одновременно.
Синтаксис:
.block { transform: scale3d(sx, sy, sz);}
.block {
transform: scale3d(sx, sy, sz);
}
Где:
sx: коэффициент масштабирования по оси x (горизонталь);sy: коэффициент масштабирования по оси y (вертикаль);sz: коэффициент масштабирования по оси z (глубина).
Как это работает:
Скопировано— если одно из значений равно нулю, весь элемент исчезает из виду;
— изменения значения одной из осей влияет на изменение размера вдоль этой оси;
— если все три значения равны, элемент не изменяется;
— по-другому можно записать scale3d как значения scale, scale и scale.
Такой код:
.block { transform: scale3d(0, 1, 2);}
.block {
transform: scale3d(0, 1, 2);
}
эквивалентен такому:
.block { transform: scaleX(0); transform: scaleY(1); transform: scaleZ(2);}
.block {
transform: scaleX(0);
transform: scaleY(1);
transform: scaleZ(2);
}
- Chrome 104, поддерживается
- Edge 104, поддерживается
- Firefox 72, поддерживается
- Safari 14.1, поддерживается