Я работаю над сеткой продуктов с чередующимся рисунком строк, подобным этому.
Контейнеры цвета представляют то, как, по моему мнению, должны выглядеть строки.
В основном есть два продукта в первом ряду и один продукт во втором ряду, повторяющиеся бесконечно. Я пытался сделать это с помощью css grids + nth child, но, похоже, у меня не получается. Вот что у меня есть до сих пор:
.container {
display: grid;
grid-template-columns: 1fr 2fr;
grid-column-gap: 0;
width: 70vw;
margin: 0 auto;
}
.item:nth-child(3n+3) {
grid-column: auto / span 2;
background-color: #e2a7de;
}
/*just for debugging*/
.container{grid-gap:5px;}
.item{background-color: #ffa900;padding: 10px;text-align:center;}<div class = "container">
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
</div>Мой мозг не может объединить сетки и nth-child для создания этого макета. Я также открыт для лучшего способа создания этого шаблона 2-1-2, если у кого-то есть другие предложения. Спасибо!






Обновите grid-template-columns, чтобы он стал 1fr 1fr
.container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-column-gap: 0;
width: 70vw;
margin: 0 auto;
}
.item:nth-child(3n+3) {
grid-column: auto / span 2;
background-color: #e2a7de;
}
/*just for debugging*/
.container{grid-gap: 5px;}.item {background-color: #ffa900;padding: 10px;text-align: center;}<div class = "container">
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
</div>Вы можете упростить свой код, как показано ниже:
.container {
display: grid;
grid-auto-columns: 1fr; /* all columns equal */
width: 70vw;
margin: 0 auto;
}
.item:nth-child(3n) {
grid-column: span 2; /* span and create two columns*/
background-color: #e2a7de;
}
/*just for debugging*/
.container{grid-gap:5px;}
.item{background-color: #ffa900;padding: 10px;text-align:center;}<div class = "container">
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
<div class = "item">
X
</div>
</div>