JSFiddle - React, Tailwind, and code Playground
HTML
<div class="row">
<div class="col-12">col-12</div>
<div class="col-6">col-6</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-4">col-4</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-6">col-6</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-3">col-3</div>
<div class="col-4">col-4</div>
<div class="col-8">col-8</div>
<div class="col-7">col-7</div>
<div class="col-5">col-5</div>
<div class="col-6">col-6</div>
<div class="col-4">col-4</div>
<div class="col-2">col-2</div>
</div>
CSS
* {
margin: 0;
padding: 0;
}
.row {
display: flex;
flex-wrap: wrap;
max-width: 700px;
width: 100%;
margin: 0 auto;
border: 2px solid #888;
justify-content: space-between;
}
div[class^="col"] {
border: 2px solid red;
}
.col-12 {
flex-basis: calc(100% - 4px);
}
.col-11 {
flex-basis: calc(11/12*100% - (1.167 - 11/12)*24px);
}
.col-10 {
flex-basis: calc(5/6*100% - (1.167 - 5/6)*24px);
}
.col-9 {
flex-basis: calc(3/4*100% - (1.167 - 3/4)*24px);
}
.col-8 {
flex-basis: calc(2/3*100% - (1.167 - 2/3)*24px);
}
.col-7 {
flex-basis: calc(7/12*100% - (1.167 - 7/12)*24px);
}
.col-6 {
flex-basis: calc(1/2*100% - (1.167 - 1/2)*24px);
}
.col-5 {
flex-basis: calc(5/12*100% - (1.167 - 5/12)*24px);
}
.col-4 {
flex-basis: calc(1/3*100% - (1.167 - 1/3)*24px);
}
.col-3 {
flex-basis: calc(1/4*100% - (1.167 - 1/4)*24px);
}
.col-2 {
flex-basis: calc(1/6*100% - (1.167 - 1/6)*24px);
}
.col-1 {
flex-basis: calc(1/12*100% - (1.167 - 1/12)*24px);
}