Various Hover effects using CSS

by Roshan Karunarathna

HTML

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<h1>CSS Image Hover Effects</h1>
<p>← <a href="https://www.nxworld.net/tips/css-image-hover-effects.html" target="_blank">View the article</a></p>

<h2>No Effect</h2>
<div class="column">
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
</div>

<h2 id="demo01">1. Zoom In #1</h2>
<div class="hover01 column">
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
</div>

<h2 id="demo02">2. Zoom In #2</h2>
<div class="hover02 column">
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg" /></figure>
    <span>Hover</span>
  </div>
</div>

<h2 id="demo03">3. Zoom Out #1</h2>
<div class="hover03 column">
  <div class="col-md-3">
    <figure><img src="https://www.w3schools.com/css/img_fjords.jpg"...

CSS

@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300);
body {
  color: #333;
  font-family: 'Open Sans', sans-serif;
  font-weight: 300;
}

h1,
h1+p {
  margin: 30px 15px 0;
  font-weight: 300;
}

h1+p a {
  color: #333;
}

h1+p a:hover {
  text-decoration: none;
}

h2 {
  margin: 60px 15px 0;
  padding: 0;
  font-weight: 300;
}

h2 span {
  margin-left: 1em;
  color: #aaa;
  font-size: 85%;
}

.column {
  margin: 15px 15px 0;
  padding: 0;
}

.column:last-child {
  padding-bottom: 60px;
}

.column::after {
  content: '';
  clear: both;
  display: block;
}

.column div {
  position: relative;
  float: left;
  width: 300px;
  height: 200px;
  margin: 0 0 0 25px;
  padding: 0;
}

.column div:first-child {
  margin-left: 0;
}

.column div span {
  position: absolute;
  bottom: -20px;
  left: 0;
  z-index: -1;
  display: block;
  width: 300px;
  margin: 0;
  padding: 0;
  color: #444;
  font-size: 18px;
  text-decoration: none;
  text-align: center;
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
  opacity: 0;
}

figure {
  width: 300px;
  height: 200px;
  margin: 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

figure:hover+span {
  bottom: -36px;
  opacity: 1;
}


/* Zoom In #1 */

.hover01 figure img {
  -webkit-transform: scale(1);
  transform: scale(1);
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
}

.hover01 figure:hover img {
  -webkit-transform: scale(1.3);
  transform: scale(1.3);
}


/* Zoom In #2 */

.hover02 figure img {
  width: 300px;
  height: auto;
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
}

.hover02 figure:hover img {
  width: 350px;
}


/* Zoom Out #1 */

.hover03 figure img {
  -webkit-transform: scale(1.5);
  transform: scale(1.5);
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
}

.hover03 figure:hover img {
  -webkit-transform: scale(1);
  transform: scale(1);
}


/* Zoom Out #2 */

.hover04 figure img {
  width: 400px;
 ...