А вот так:
<img src="./petusik.png">
<img src="./petusik.png" class="flip-x">
.flip-x {
display: block;
transform: scaleX(-1);
}
Василий Половнёв и Игорь Петров. ХТМЛ. Вёрстка сайтов для дизайнеров, редакторов и руководителей. Демонстрационная глава «Блочные и строчные элементы»
Значения transform: scaleX(-1)
, scaleY(-1)
или scale(-1)
отразят элемент по горизонтали, по вертикали или по обеим осям соответственно. Сработает только с блочными элементами.
Василий Половнёв и Игорь Петров. ХТМЛ. Вёрстка сайтов для дизайнеров, редакторов и руководителей. Демонстрационная глава «Блочные и строчные элементы»
У приёма не так много сценариев применения. Отзеркаливать чужие фото — дурной тон, а отзеркаливать чужие произведения — искажение информации и нарушение авторских прав.
Можно сэкономить на иконках и иллюстрациях, если они позволяют себя отзеркалить, — не использовать дополнительную картинку, а отразить существующую:
.button.is-fold .icon {
transform: scaleY(-1);
}
Или намудрить какой‑нибудь прикол:
<div class="mirror">
<img src="./iphone.jpg">
<img src="./iphone.jpg" class="reflection">
</div>
.mirror {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 1px;
}
.mirror img {
width: 100%;
display: block;
margin: 0;
}
.mirror .reflection {
max-height: 40px;
transform: scaleY(-1);
opacity: .7;
filter: blur(.5px);
-webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0));
mask-image: linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0));
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
object-fit: cover;
object-position: bottom center;
}
А вообще — просто полезно знать, что так можно. Иногда подобные костыли трюки в экзотических ситуациях могут сэкономить кучу времени.
P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.