JSFiddle - React, Tailwind, and code Playground
HTML
<!--start portfolio------>
<div class="wrap" id="portfolio">
<div class="main">
<!-- start gallery -->
<div class="gallery1">
<!---start-content----->
<div class="gallery">
<div class="clear"> </div>
<div class="container">
<h2>Портфолио</h2>
<p>Много сплю и ем, но я гарантирую, что вы полюбите меня таким, какой я есть.</p>
<ul id="filters" class="clearfix">
<li><span class="filter active">Питание</span></li>
<li><span>Уход</span></li>
<li><span>Выгул</span></li>
<li><span>Здоровье/Страховка</span></li>
</ul>
<div id="portfoliolist">
<div class="portfolio logo" data-cat="logo">
<div class="portfolio-wrapper">
<a class="popup-with-zoom-anim" href="#small-dialog1">
<ul class="ch-grid">
<li>
<div class="ch-item ch-img-1">
<div class="ch-info">
<img src="http://europug.eu/images/zoom-white.png"/>
<h3>Позирую</h3>
<p><a href="#">перед камерой</a></p>
</div>
</div>
</li>
</ul>
</a>
</div>
</div>
<div class="portfolio app" data-cat="app">
<div class="portfolio-wrapper">
<a class="popup-with-zoom-anim" href="#small-dialog1">
<ul class="ch-grid">
<li>
<div class="ch-item ch-img-2">
<div class="ch-info">
<img src="http://europug.eu/images/zoom-white.png"/>
<h3>Сижу в чате</h3>
<p><a href="#">регулярно</a></p>
</div>
</div></li>
</ul>
</a>
</div>
</div>
<div class="hide">
<div class="portfolio web" data-cat="web">
<div class="portfolio-wrapper">
<a class="popup-with-zoom-anim" href="#small-dialog1">
<ul class="ch-grid">
<li>
<div class="ch-item ch-img-3">
<div class="ch-info">
<img src="http://europug.eu/images/zoom-white.png"/>
<h3>Отдыхаю</h3>
<p><a href="#">на...
CSS
body {
font-family: 'Lato', sans-serif;
font-size: 100%;
background: #ffffff;
}
/* start main_btm */
.container h2{
color:#4D4D4D;
font-size: 2em;
padding-bottom: 0.5em;
text-align: center;
}
.container p{
color:#444444;
font-size: 1em;
padding-bottom: 1em;
text-align: center;
}
.main_btm {
margin-top: 4%;
display: block;
}
/*---start-gallery-----*/
.gallery{
margin-top: 4% 0%;
}
.gallery1 {
padding: 4em 0em;
}
.container {
position: relative;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
#filters {
margin: 2% auto;
padding: 0;
list-style: none;
width: 82%;
}
#filters li {
float:left;
margin-left: 90px;
}
#filters li span {
display: block;
padding: 10px 30px;
text-decoration: none;
color: #fff;
background:#d0a5a5;
cursor: pointer;
text-transform:uppercase;
font-weight: 600;
}
#filters li span:hover
{
background:#a97b7b;
}
#filters li span.active {
background:#a97b7b;
color:#fff;
}
#portfoliolist .portfolio {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-o-box-sizing: border-box;
width: 19%;
margin: 0% 3%;
float: left;
}
.portfolio-wrapper {
position: relative !important;
cursor:pointer;
}
.portfolio img {
max-width:100%;
position: relative;
opacity: 5;
transition: all 300ms!important;
-webkit-transition: all 300ms!important;
-moz-transition: all 300ms!important;
}
.ch-item {
width: 100%;
height: 100%;
border-radius: 50%;
position: relative;
cursor: default;
-webkit-transition: all 0.9s ease-in-out;
-moz-transition: all 0.9s ease-in-out;
-o-transition: all 0.9s ease-in-out;
-ms-transition: all 0.9s ease-in-out;
transition: all 0.9s ease-in-out;
}
.ch-img-1 {
background-image: url(http://europug.eu/images/camera.png);
}
.ch-img-2 {
background-image: url(http://europug.eu/images/chat.png);
}
.ch-img-3 {
background-image: url(http://europug.eu/images/fire.png);
}
.ch-img-4 {
background-image:...