作者:Henry-lau洋 | 来源:互联网 | 2023-01-10 18:24
假设我们有一个包含7个项目的新闻条目列表。
我使用CSS Grid创建了一个模式,该模式应在6个项目之后重复出现。
@supports (display: grid)
{
.list
{
display: grid;
grid-gap: 25px;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: auto;
grid-template-areas:
"bigLeft bigLeft right1 right2"
"bigLeft bigLeft bigRight bigRight"
"left1 left2 bigRight bigRight";
}
.item:nth-of-type(6n+1)
{
grid-area: bigLeft;
}
.item:nth-of-type(6n+2)
{
grid-area: right1;
}
.item:nth-of-type(6n+3)
{
grid-area: right2;
}
.item:nth-of-type(6n+4)
{
grid-area: left1;
}
.item:nth-of-type(6n+5)
{
grid-area: left2;
}
.item:nth-of-type(6n+6)
{
grid-area: bigRight;
}
}
所需grid-template-areas
模式:
现在,我希望这种模式重复并重复添加到列表中的更多项。但是在这里您可以看到,一旦添加了第七项,图案就不会继续,而是会被替换。
我也尝试了未命名区域
.item:nth-of-type(6n+1) {
grid-column: 1 / 3;
grid-row: 1 / 3;
}
.item:nth-of-type(6n+2) {
grid-column: 3 / 4;
grid-row: 1 / 2;
}
.item:nth-of-type(6n+3) {
grid-column: 4 / 5;
grid-row: 1 / 2;
}
.item:nth-of-type(6n+4) {
grid-column: 1 / 2;
grid-row: 3 / 4;
}
.item:nth-of-type(6n+5) {
grid-column: 2 / 3;
grid-row: 3 / 4;
}
.item:nth-of-type(6n+6) {
grid-column: 3 / 5;
grid-row: 2 / 4;
}
但结果相同
我在规范中找不到任何解决方案来完成“可重复的网格模板区域”
你们中有人有想法吗?