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>
  <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>
<div class="card-container">
  <div class="image-card perspective-left"></div>
  <div class="image-card perspective-right"></div>

CSS Code:


   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("https://www.w3resource.com/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);


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.

HTML-CSS: Tips of the Day

How can I show dots ("...") in a span with hidden overflow?

For this you can use text-overflow: ellipsis; property. Write like this

span {
    display: inline-block;
    width: 180px;
    white-space: nowrap;
    overflow: hidden !important;
    text-overflow: ellipsis;
<span>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book</span>

Ref: https://bit.ly/2RqEbdh