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;
}