I don't know what you've tried, nor what you have right now, but I did my best with the information I'd been given.
First, I used flexboxes just because they make everything so much easier.
The container has a display of flex.
Each box (group of 4 or 2 cells) has a border of 1px solid #C3A488
and a display of inline-flex
.
Each cell has a ::before
pseudo element with a width of 1 pixel and a linear gradient for a background.
I used the :first/last-child
selectors to get the borders just right.
html,
body {
background: #FEE0D6;
}
.container {
display: flex;
}
.container .box {
border: 1px solid #C3A488;
border-right: 0;
display: inline-flex;
}
.container .box:last-child {
border-right: 1px solid #C3A488;
}
.container .box .cell {
display: inline-block;
width: 1em;
height: 1.2em;
background-color: white;
}
.container .box .cell::before {
content: '';
width: 1px;
display: inline-block;
height: 100%;
background: linear-gradient(180deg, #DFDCD3 0%, #DFDCD3 33.33%, transparent 33.33%, transparent 66.66%, #DFDCD3 66.66%, #DFDCD3 100%);
}
.container .box .cell:first-child::before {
content: none;
}
<div class="container">
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
</div>
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
</div>
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
</div>
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
</div>
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
<span class="cell"></span>
</div>
<div class="box">
<span class="cell"></span>
<span class="cell"></span>
</div>
</div>