JSFiddle - React, Tailwind, and code Playground
HTML
<div class="main">
<div class="box">1</div>
</div>
<br>
<div class="main">
<div class="box">1</div>
<div class="box">1</div>
</div>
<br>
<div class="main">
<div class="box">1</div>
<div class="box">1</div>
<div class="box">1</div>
<div class="box">1</div>
</div>
<br>
<div class="main">
<div class="box">1</div>
<div class="box">1</div>
<div class="box">1</div>
<div class="box">1</div>
<div class="box">1</div>
</div>
CSS
.main {
background: #999;
margin: 0 auto;
width: 500px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.box {
background: #7ab9d7;
color: #555;
height: 30px;
width: 30%;
margin-bottom: 30px;
text-align: center;
font-size: 30px;
padding-top: 120px;
}
.main::before {
height: 0;
width: 30%;
content: "";
background: red;
order: 1;
}
.main::after {
height: 0;
width: 100%;
content: "";
background: red;
order: 2;
}
.main div:only-child { /* added rule */
order: 3;
margin-left: auto;
margin-right: auto;
}
/* two items */
.main div:first-child:nth-last-child(2) {
order: 3;
margin-left: auto;
}
.main div:first-child:nth-last-child(2) + div {
order: 3;
margin-left: auto;
margin-right: auto;
}