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");        
  } 
});