Multi-layer thumbnails are another wise way to manage them. You can put the picture in one layer and specify the caption on the other. When a user hovers on the thumbnail, the hidden layer comes in front with an effect. The following code is a good example of what described above. Enjoy!


HTML
<!-- This script got from www.devanswer.com -->
<div class="item-grid">
<div class="item">
<div class="item-image">
<img src="http://devanswer.com/codes/files/tiger-day.jpg" alt="" />
</div>
<div class="item-text">
<div class="item-text-wrapper">
<p class="item-text-dek">Tiger Thumbnail</p>
<h2 class="item-text-title">Explore more</h2>
</div>
</div>
<a class="item-link" href="http://devanswer.com/">See more here</a>
</div>
<div class="item">
<div class="item-image">
<img src="http://devanswer.com/codes/files/tiger-man-eating.jpg" alt="" />
</div>
<div class="item-text">
<div class="item-text-wrapper">
<p class="item-text-dek">Tigers Danger</p>
<h2 class="item-text-title">Danger of a Tiger</h2>
</div>
</div>
<a class="item-link" href="http://devanswer.com/">See more here</a>
</div>
<div class="item">
<div class="item-image">
<img src="http://devanswer.com/codes/files/white_tiger.jpg" alt="" />
</div>
<div class="item-text">
<div class="item-text-wrapper">
<p class="item-text-dek">White Tiger</p>
<h2 class="item-text-title">Tigers Colors</h2>
</div>
</div>
<a class="item-link" href="http://devanswer.com/">See more here</a>
</div><div id="bcl"><a style="font-size:8pt;text-decoration:none;" href="http://www.devanswer.com">Developers Answer</a></div>
                        

CSS
body {
  font-family: "Montserrat", sans-serif;
  background: #202030;
}

.item-grid {
  max-width: 900px;
  margin: 100px auto;
  position: relative;
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.3);
  overflow: hidden;
}

.item {
  position: relative;
  float: left;
  width: 33.33333333333%;
  background-color: #128EF3;
  overflow: hidden;
}
.item:after {
  content: '';
  display: block;
  background-color: inherit;
  opacity: 0.9;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transform: scale(2) translateX(-75%) translateY(-75%) translateZ(0) rotate(-28deg);
          transform: scale(2) translateX(-75%) translateY(-75%) translateZ(0) rotate(-28deg);
  transition: -webkit-transform 3s cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 3s cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 3s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 3s cubic-bezier(0.23, 1, 0.32, 1);
}
.item:hover:after {
  -webkit-transform: scale(2) translateX(0%) translateY(0%) translateZ(0) rotate(-28deg);
          transform: scale(2) translateX(0%) translateY(0%) translateZ(0) rotate(-28deg);
}
.item:hover .item-image {
  -webkit-transform: scale(1.2) translateZ(0);
          transform: scale(1.2) translateZ(0);
}
.item:hover .item-text {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.item-image {
  height: auto;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition: -webkit-transform 750ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 750ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: transform 750ms cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 750ms cubic-bezier(0.23, 1, 0.32, 1);
}
.item-image::before {
  content: "";
  display: block;
  padding-top: 75%;
  overflow: hidden;
}
.item-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  line-height: 0;
}

.item-text {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  opacity: 0;
  text-align: center;
  z-index: 1;
  color: #ffffff;
  transition: opacity 500ms cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: opacity 500ms cubic-bezier(0.23, 1, 0.32, 1), transform 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition: opacity 500ms cubic-bezier(0.23, 1, 0.32, 1), transform 500ms cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 500ms cubic-bezier(0.23, 1, 0.32, 1);
  transition-delay: 300ms;
  -webkit-transform: translateY(-20%);
          transform: translateY(-20%);
}

.item-text-wrapper {
  width: 100%;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.item-text-title {
  font-weight: normal;
  font-style: 16px;
  padding: 0 15px;
  margin: 5px 0 0 0;
}

.item-text-dek {
  text-transform: uppercase;
  font-style: 14px;
  opacity: 0.7;
  margin: 0;
}

.item-link {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  line-height: 0;
  overflow: hidden;
  text-indent: -9999px;
}