JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="parts">
<li class="part part__1 part__left">
<div class="part_inner">
<div class="part_shape">
<div class="part_content" style="background-image: url(http://lorempixel.com/300/300);">
<span>text 1</span>
</div>
</div>
</div>
</li>
<li class="part part__2 part__left">
<div class="part_inner">
<div class="part_shape">
<div class="part_content" style="background-image: url(http://lorempixel.com/300/301);">
<span>text 2</span>
</div>
</div>
</div>
</li>
<li class="part part__3 part__right">
<div class="part_inner">
<div class="part_shape">
<div class="part_content" style="background-image: url(http://lorempixel.com/300/302);">
<span>text 3</span>
</div>
</div>
</div>
</li>
<li class="part part__4 part__left">
<div class="part_inner">
<div class="part_shape">
<div class="part_content" style="background-image: url(http://lorempixel.com/300/303);">
<span>text 4</span>
</div>
</div>
</div>
</li>
</ul>
SCSS
* {
margin: 0;
padding: 0;
}
html {
padding: 100px;
}
html, body {
height: 100%;
}
body {
position: relative;
}
.parts {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
min-width: 900px;
min-height: 400px;
background: #eee;
list-style: none;
display: table;
overflow: hidden;
}
.part {
height: 100%;
width: 25%;
display: table-cell;
transition: all .3s;
.parts:hover & {
width: 22%;
}
&:hover {
width: 34% !important;
}
}
.part_inner {
position: relative;
height: 100%;
background:#eee;
}
.part_shape {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
overflow: hidden;
}
.part_content {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
font-size: 0;
line-height: 0;
text-align: center;
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
&:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
span {
display: inline-block;
vertical-align: middle;
background: #fff;
padding: 10px;
font-size: 14px;
line-height: 18px;
text-transform: uppercase;
color: #000;
}
}
.part__left {
.part_shape {
left: -10%;
right: -10%;
transform: skew(5deg);
}
}
.part__right {
.part_shape {
left: -10%;
right: -10%;
transform: skew(-5deg);
}
}
.part__1 {
background: red;
}
.part__2 {
background: blue;
}
.part__3 {
background: pink;
}
.part__4 {
background: brown;
}