JSFiddle - React, Tailwind, and code Playground
HTML
<div class="caption-box">
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
<a href="#">
<div class="imageHolder">
<img src="http://lorempixel.com/output/animals-q-c-640-480-7.jpg"/>
<div class="caption"><a href="#">Title</a></div>
</div>
</a>
</div>
CSS
.caption-box {
width: 100%;
height: auto;
display: inline;
}
.caption-box .imageHolder {
display: inline-block;
width: auto;
margin:0 auto;
margin-bottom: 5px;
}
.imageHolder {
position: relative;
width: 220px;
height: 150px;
border: 3px solid #ddd;
}
.imageHolder:hover{
opacity: 0.9;
border: 3px solid #333;
}
.imageHolder img{
width:220px;
height:150px;
}
.imageHolder .caption {
position: absolute;
width: 220px;
height: 27px;
bottom: 0px;
left: 0px;
color: #ffffff;
background: #333;
text-align:center;
opacity:0.7;
padding-top:15px;
}
.imageHolder .caption a:visited, a:link{
color:#fff;
text-decoration:none;
}
.imageHolder .caption a:hover{
color:#fff;
text-decoration:underline;
}