<section class="content">
<figure class="picture">
<img src="https://unsplash.it/600/300?image=788" alt="" />
<figcaption>
<div class="vertical-align">
<h2>image title</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima aliquam, repellat. Vitae soluta, aliquid est assumenda molestiae.</p>
<a href="">view more</a>
</div>
</figcaption>
</figure>
<figure class="picture">
<img src="https://unsplash.it/600/300?image=696" alt="" />
<figcaption>
<div class="vertical-align">
<h2>image title</h2>
<p>Nesciunt porro nihil fuga corrupti culpa, alias qui, repellat id consequuntur cum a.</p>
<a href="">view more</a>
</div>
</figcaption>
</figure>
<figure class="picture">
<img src="https://unsplash.it/600/300?image=813" alt="" />
<figcaption>
<div class="vertical-align">
<h2>image title</h2>
<p>Soluta quo id porro cum impedit voluptatem quae commodi debitis quos consectetur!</p>
<a href="">view more</a>
</div>
</figcaption>
</figure>
<figure class="picture">
<img src="https://unsplash.it/600/300?image=876" alt="" />
<figcaption>
<div class="vertical-align">
<h2>image title</h2>
<p>Veniam dignissimos saepe illo ipsa voluptates culpa neque ad corrupti?</p>
<a href="">view more</a>
</div>
</figcaption>
</figure>
</section>
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body{
font-family: serif;
}
figure{
position:relative;
width: 50%;
float: left;
margin: 0;
padding: 0;
text-align: center;
background: FIREBRICK;
p {
padding: 0 1em;
}
}
img{
display: block;
width: 100%;
transition:opacity .2s ease-in-out;
backface-visibility: hidden;
transform-style: preserve-3d;
}
a{
color:inherit;
text-decoration: none;
display: inline-block;
vertical-align: middle;
&:before{
content:'→';
display: inline-block;
vertical-align: middle;
padding-right: 1em;
margin-right: -2em;
opacity: 0;
visibility: hidden;
transition: all .2s ease-out;
}
}
figcaption{
font-size: .8rem;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 2em;
color: #fff;
backface-visibility: hidden;
&:before,
&:after{
position: absolute;
top: 30px;
right: 30px;
bottom: 30px;
left: 30px;
content: '';
opacity: 0;
transition: opacity 0.35s, transform 0.5s;
}
&:before{
border-top: 1px solid #fff;
border-bottom: 1px solid #fff;
transform: scale(0,1);
}
&:after{
border-right: 1px solid #fff;
border-left: 1px solid #fff;
transform: scale(1,0);
}
}
figure:hover{
img{
opacity: .5;
}
figcaption:before,
figcaption:after{
opacity: 1;
transform: scale(1);
}
figcaption a:before{
opacity: 1;
visibility: visible;
margin-right: 0;
}
}
.vertical-align{
position: relative;
top:50%;
transform: translateY(-50%);
transform-style: preserve-3d;
backface-visibility: hidden;
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.