JSFiddle - React, Tailwind, and code Playground
HTML
<div class="work">
<div class="work__item">
<img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
<div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
<img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
<div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
<img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
<div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
<img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
<div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
<img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
<div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
</div>
SCSS
.work {
display: flex;
flex-wrap:wrap;
&__item {
width: 25%;
position: relative;
overflow: hidden;
-webkit-transition: 0.3s;
-moz-transition: 0.3s;
-ms-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
img {
width:100%;
display: block;
-webkit-transition: 0.3s;
-moz-transition: 0.3s;
-ms-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
}
&:hover {
padding-bottom: 50px;
img {
margin-top: -50px;
}
.work__info {
bottom: 0;
}
}
}
&__info {
position: absolute;
left: 0;
text-align: center;
z-index: 3;
bottom: -50px;
display: flex;
align-items: center;
width: 100%;
height: 50px;
background: #ccc;
-webkit-transition: 0.3s;
-moz-transition: 0.3s;
-ms-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
}
}