w3resource

HTML-CSS: Perspective transform on hover

HTML-CSS : Exercise-9 with Solution

Using HTML, CSS apply a perspective transform with a hover animation to an element.

  • Use transform with the perspective() and rotateY() functions to create a perspective for the element.
  • Use a transition to update the transform attribute's value on hover.
  • Change the rotateY() value to negative to mirror the perspective effect from left to right.

HTML Code:

<!--License: https://bit.ly/3GjrtVF-->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Using HTML, CSS apply a perspective transform with a hover animation to an element</title>
</head>
<body>
<strong>Preview:</strong><br>
<div class="card-container">
  <div class="image-card perspective-left"></div>
  <div class="image-card perspective-right"></div>
</div>
</body>
</html>

CSS Code:

<style>

.w3rcontainer{
   border: 1px solid #cccfdb;
   border-radius: 2px;
}
 .image-card {
  display: inline-block;
  box-sizing: border-box;
  margin: 1rem;
  width: 240px;
  height: 320px;
  padding: 8px;
  border-radius: 1rem;
  background: url("/html-css-exercise/html-css-practical-exercises/flower-2.jpeg");
  box-shadow: rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;
}

.perspective-left {
  transform: perspective(1500px) rotateY(15deg);
  transition: transform 1s ease 0s;
}

.perspective-left:hover {
  transform: perspective(3000px) rotateY(5deg);
}

.perspective-right {
  transform: perspective(1500px) rotateY(-15deg);
  transition: transform 1s ease 0s;
}

.perspective-right:hover {
  transform: perspective(3000px) rotateY(-5deg);
}

</style>

HTML-CSS Editor:

See the Pen html-css-practical-exercises by w3resource (@w3resource) on CodePen.


What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Share this Tutorial / Exercise on : Facebook and Twitter

HTML-CSS: Tips of the Day

Two divs side by side - Fluid display

#sides{
margin:0;
}
#left{
float:left;
width:75%;
overflow:hidden;
}
#right{
float:left;
width:25%;
overflow:hidden;
} 

Ref: https://bit.ly/3EN8QKy