Хотя каждый 6-й и 7-й элемент появляются не в порядке, они не выходят из строя.
Посмотрите на элемент 5 (элемент span 2
). Верхняя половина находится в ряду 2, а нижняя - в ряду 3. Но она размещается в ряду 2.
То же самое для элемента 6. Верхняя половина - в ряду 2, а нижняя - в ряду 3. Он помещается в строку 2, которая находится перед строкой 3, где находится элемент 7.
Итак, 6 помещается перед 7, 15 перед 16, и так далее c., И все размещены в порядке.
Ориентация на эти предметы с CSS не имеет большого значения.
div:nth-child(8n+6),
div:nth-child(8n+7) {}
.wrapper {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 100px;
grid-gap: 8px;
}
.item {
background-color: #c4c4c4;
display: flex;
justify-content: center;
align-items: center;
}
div:nth-child(8n+1), div:nth-child(8n+3), div:nth-child(8n+7), div:nth-child(8n+8) {
grid-row: span 1;
}
div:nth-child(8n+2), div:nth-child(8n+4), div:nth-child(8n+5), div:nth-child(8n+6) {
grid-row: span 2;
}
div:nth-child(8n+6),
div:nth-child(8n+7) {
background-color: lightgreen;
}
<div class="wrapper">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item">item9</div>
<div class="item">item10</div>
<div class="item">item11</div>
<div class="item">item12</div>
<div class="item">item13</div>
<div class="item">item14</div>
<div class="item">item15</div>
<div class="item">item16</div>
</div>
Но что тогда? Не уверен, что есть какое-то простое решение проблемы, но этот выглядит неплохо.