Вы знали, что совсем не обязательно использовать графический редактор, чтобы отразить картинку по горизонтали или вертикали, и даже, чтобы сделать эффект зеркального отражения?
Всё это можно сделать на чистом 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);
}
И вот такой результат у нас получится в итоге.
На скорую руку, но кажется совсем не плохо.






