Как отразить изображение?

Для отражения изображения или другого элемента, в том числе текста, применяется свойство transform и функция scale(). Хотя исходно эта функция предназначена для изменения масштаба элемента, отрицательное значение -1 позволяет сделать отражение.

Варианты такие:

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

Вместо scale() можно использовать отдельные функции scaleX() и scaleY(), они отвечают за масштабирование по соответствующим координатам:

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

В примере 1 добавляется обычное изображение, а затем оно же, но отражённое по вертикали. Для этого к <img> добавляется класс с именем mirrorY, а в нём используется свойство transform с функцией scaleY(-1).

Пример 1. Отражение фотографии

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Отражение</title> <style> .mirrorY { transform: scaleY(-1); } </style> </head> <body> <img src="image/spam.jpg" alt="Спам"> <img src="image/spam.jpg" alt="Спам" class="mirrorY"> </body> </html>

Результат данного примера показан на рис. 1.

Обычная фотография и фотография, отражённая по вертикали

Рис. 1. Обычная фотография и фотография, отражённая по вертикали