JSFiddle - React, Tailwind, and code Playground
HTML
<ul>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li>
<div class="box"></div>
</li>
<li class="clear"></li>
</ul>
CSS
ul {
list-style: none;
display: block;
}
ul li {
display: item-list;
position: relative;
width: 130px;
float: left;
margin: 0 2% 24px;
}
ul li.clear {
clear: both;
}
ul li .box {
width: 130px;
height: 200px;
display: block;
background-color: red;
}
ul li .container {
display: block;
}
ul li .container .menu {
position: absolute;
width: 100%;
left: 0;
display:block;
}
ul li .container .menu .content {
display: block;
position: relative;
width: 100%;
background-color: blue;
}
JavaScript
$("li").click(function () {
$('.container').remove();
$(this).append("<div class='container'></div>");
$(".container").html("<div class='menu'><div class='content'></div></div>");
$(".content").animate({
height: "100px"
}, 1000);
});