JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="photo-grid">
<li>
<a href="http://amiralibk.ir/wp-content/uploads/2014/11/seo-pi.jpg">
<figure>
<img src="http://amiralibk.ir/wp-content/uploads/2014/11/seo-pi.jpg" height="180" width="320" alt="Arc de Triomphe">
<figcaption><p>Arc de Triomphe</p></figcaption>
</figure>
</a>
</li>
<li>
<a href="http://www.flickr.com/photos/aigle_dore/5237960181/">
<figure>
<img src="http://amiralibk.ir/wp-content/uploads/2014/11/seo-pi.jpg" height="180" width="320" alt="Eiffel Tower">
<figcaption><p>Eiffel Tower</p></figcaption>
</figure>
</a>
</li>
<li><a href="http://www.flickr.com/photos/aigle_dore/5238557764/">
<figure>
<img src="images/notredame_sm.png" height="180" width="320" alt="Notre Dame">
<figcaption><p>Notre Dame</p></figcaption>
</figure>
</a>
</li>
</ul>
CSS
.photo-grid {
margin: 1em auto;
max-width: 1106px;
text-align: center;
}
.photo-grid li {
border: 5px solid white;
display: inline-block;
margin: 1em;
width: 289px;
}
.photo-grid img {
display: block;
height: auto;
max-width: 100%;
}
.photo-grid figure {
height: 163px;
overflow: hidden;
position: relative;
width: 289px;
}
.photo-grid figcaption {
background: rgba(0,0,0,0.8);
color: white;
display: table;
height: 100%;
left: 0;
opacity: 0;
position: absolute;
right: 0;
top: 0;
z-index: 100;
}
.photo-grid figcaption p {
display: table-cell;
font-size: 1.5em;
position: relative;
top: -40px;
width: 289px;
vertical-align: middle;
}
.photo-grid li:hover figcaption {
opacity: 1;
}
.photo-grid img {
display: block;
height: auto;
-webkit-transition: all 300ms;
-moz-transition: all 300ms;
transition: all 300ms;
max-width: 100%;
}
.photo-grid li:hover img {
-webkit-transform: scale(1.4);
-moz-transform: scale(1.4);
transform: scale(1.4);
}
.photo-grid figcaption p {
display: table-cell;
font-size: 1.5em;
position: relative;
top: -40px;
width: 289px;
-webkit-transition: all 300ms ease-out;
-moz-transition: all 300ms ease-out;
transition: all 300ms ease-out;
vertical-align: middle;
}
.photo-grid li:hover figcaption p {
-moz-transform: translateY(40px);
-webkit-transform: translateY(40px);
transform: translateY(40px);
}