/
Вопросы и ответы
/
CSS
/

Как отзеркалить картинку в css

Как отзеркалить картинку в css

5 лет назад

Человек-Молекула

Ответы

1

Для отражения элемента в CSS можно использовать свойство transform. Данное свойство имеет различные функции трансформаций и позволяет изменять элементы: вращать, передвигать, наклонять, масштабировать - или комбинировать данные виды трансформаций.

Чтобы отразить элемент необходимо использовать свойство transform с функцией трансформации scale() с отрицательными значениями:

  • transform: scale(-1, 1) - отражение по горизонтали
  • transform: scale(1, -1) — отражение по вертикали
  • transform: scale(-1, -1) — одновременное отражение по горизонтали и вертикали

4 года назад

Лиза Гонцова

0

Отзеркалить картинку по горизонтали помогает transform: scaleX(-1):

1
2
3
.mirror {
  transform: scaleX(-1);
}

scaleX(-1) растягивает элемент по горизонтали с коэффициентом −1 — картинка отражается слева направо.

По вертикали

1
2
3
.flip {
  transform: scaleY(-1);
}

Обе оси сразу — то же, что поворот на 180°: transform: scale(-1, -1).

Отражение вместе с другими трансформациями

Все трансформации записывают в одном свойстве, иначе последнее перезапишет предыдущее:

1
2
3
.icon {
  transform: rotate(15deg) scaleX(-1);
}

Отзеркалить фон

transform отражает весь элемент вместе с текстом. Чтобы перевернуть только фоновую картинку, вынесите её в псевдоэлемент:

1
2
3
4
5
6
7
8
9
10
11
12
.card {
  position: relative;
}

.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("bg.jpg") center / cover;
  transform: scaleX(-1);
  z-index: -1;
}

Анимация переворота

1
2
3
4
5
6
7
.flip-on-hover {
  transition: transform 0.3s;
}

.flip-on-hover:hover {
  transform: scaleX(-1);
}

Для языков с письмом справа налево

Иконки-стрелки отражают только для арабского и иврита:

1
2
3
[dir="rtl"] .arrow {
  transform: scaleX(-1);
}

Трансформации разбирают в курсе «Профессиональная вёрстка».

13 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845