
супер просто, вот код с правильным объяснением и комментариями
Функция rotate() css определяет преобразование, которое вращает элемент вокруг фиксированной точки на 2D-плоскости, не деформируя его.
Величина вращения, создаваемая rotate(), определяется углом. Если положительный, движение будет по часовой стрелке; если отрицательный, он будет против часовой стрелки. Поворот на 180° называется точечным отражением.
имя оси x, y или z плюс значение угла
Имя оси, вокруг которой вы хотите повернуть затронутый элемент ("x", 'y' или 'z"), плюс угол, определяющий угол, на который нужно повернуть элемент. Эквивалент функции rotateX()/rotateY()/rotateZ() (трехмерное вращение).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.card {
width: 300px;
height: 200px;
position: relative;
perspective: 1000px;
}
.card-front, .card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
transition: transform 0.8s ease;
}
.card-back {
transform: rotateY(180deg);
}
.flip .card-front {
transform: rotateY(180deg);
}
.flip .card-back {
transform: rotateY(360deg);
}
.card-front, .card-back {
color: white;
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
transition: transform 0.8s ease;
border-radius: 10px; /* add rounded corners to the front and back of the card */
background-color: rgb(44, 22, 22); /* add a white background color to the card */
padding: 20px; /* add some padding to the card */
}
.card:hover {
box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.3); /* add a larger shadow when the card is hovered over */
}
.flip .card-front {
transform: rotateY(180deg);
box-shadow: 0px 0px 50px rgba(255, 255, 255, 0.3);
}
.flip .card-back {
transform: rotateY(360deg);
box-shadow: 0px 0px 50px rgba(255, 255, 255, 0.3);
}
</style>
</head>
<body>
<div id="card-container">
<div class="card">
<div class="card-front">
<h1>side 1</h1>
</div>
<div class="card-back">
<h1>side 2<h1>
</div>
</div>
</div>
<br>
<button id="flip-button">Flip Card</button>
<script>
document.getElementById("flip-button").addEventListener("click", function() {
var card = document.querySelector(".card");
card.classList.toggle("flip");
});
</script>
</body>
</html>