Вы знали, что совсем не обязательно использовать графический редактор, чтобы отразить картинку по горизонтали или вертикали, и даже, чтобы сделать эффект зеркального отражения?
Всё это можно сделать на чистом css и html, используя минимум кода.
Этот урок будет быстрым и простым и, думаю, он вам понравится.
Отражаем картинку по горизонтали, используя css
Для начала я найду картинку. Это будет колибри (очень милые птички). Далее создам html-файл. Картинку загружу в ту же папку, где лежим мой файл. И напишу совсем простой код, который выводит эту картинку на экран.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Colibri</title> </head> <body> <img src="colibri.png" alt="colibri" class="colibri"> </body> </html>
Выглядит это так:
Допустим, я хочу чтобы моя птичка смотрела не влево, а вправо.
Для этого мне нужно написать вот такой css код.
.colibri{ transform: scale(-1, 1); }
Теперь колибри смотрит вправо.
Делаем зеркальное отражение картинки
И для того, чтобы было совсем интересно. Сделаем эффект зеркального отражения.
Для этого мне нужно добавить еще одну такую же картинку и сделать так, чтобы картинки строго располагались друг под другом.
Для этого я оберну обе картинки в div, которому потом задам некоторые стили. Также задам для нижней картинки класс с именем colibri_down.
Мой блок html кода будет выглядеть так:
<div class="colibri_wrapper"> <img src="colibri.png" alt="colibri" class="colibri"> <img src="colibri.png" alt="colibri" class="colibri_down"> </div>
А теперь задам стили для контейнера и для нижней картинки.
Контейнеру я задам display:flex с вертикальной ориентацией (flex-direction:column) – это нужно для того, чтобы картинки располагались друг под другом. Ну и также задам ему фиксированную ширину.
.colibri_wrapper{ width: 300px; display: flex; flex-direction: column; }
А для нижней картинки применю transform: scale(-1, -1) – это отразит картинку и по горизонтали и по вертикали одновременно. Также задам прозрачность и размытие.
.colibri_down{ transform: scale(-1, -1); opacity: .3; filter: blur(1px); }
И вот такой результат у нас получится в итоге.
На скорую руку, но кажется совсем не плохо.