Как отразить картинку и сделать зеркальное отражение с помощью css

/ 👁 3109

Вы знали, что совсем не обязательно использовать графический редактор, чтобы отразить картинку по горизонтали или вертикали, и даже, чтобы сделать эффект зеркального отражения?

Всё это можно сделать на чистом 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);
        }

И вот такой результат у нас получится в итоге.

На скорую руку, но кажется совсем не плохо.

Tags: ,

Leave a Reply