JSFiddle - React, Tailwind, and code Playground
by heeehong
HTML
<div class="grid">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="itemg">Item 4</div>
<div class="item">Item 5</div>
<div class="item big">Item 6</div>
<div class="item">Item 7</div>
<div class="item">Item 8</div>
<div class="item">Item 9</div>
<div class="item">Item 10</div>
<div class="item big">Item 11</div>
<div class="item">Item 12</div>
<div class="item">Item 13</div>
<div class="item">Item 14</div>
<div class="item">Item 15</div>
</div>
CSS
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.grid div {
grid-column-end: span 1;
grid-row-end: span 1;
border: 2px solid #ffa94d;
border-radius: 5px;
background-color: #ffd8a8;
padding: 1em;
color: #d9480f;
}
.grid div.big {
grid-column-end: span 2;
grid-row-end: span 2;
}
JavaScript
$('.grid > div:nth-child(3n)').each(function () {
if($(this).hasClass("big") === true) {
var num = $(this).index(); //index
var num2 = parseInt(num/3) + 1;
$(this).next("div").css("grid-row", num2);
$(this).next("div").css("grid-column", "3");
$(this).next("div").css("background", "yellow");
}
});