不能为网格间隙设置多个大小。这个
column-gap
和
row-gap
属性(以前
grid-column-gap
和
grid-row-gap
)只接受一个值。
这里详细介绍了这个问题:
应用于网格容器的伪元素被视为网格项。
此行为解释如下:
这个
order
属性可用于重新排列屏幕上的网格项。
详细信息如下:
结合使用,您可以使用
::before
和
::after
伪元素,用
秩序
财产,并摆脱
网格列间隙
规则。
.myRow {
display: grid;
grid-template-columns: 0.1fr 0.1fr 2fr auto 3fr auto 2fr;
justify-content: center;
padding: 10px;
}
.myRow::before {
content: "";
width: 10px;
background-color: white;
}
.myRow::after {
content: "";
width: 10px;
background-color: white;
}
.myRow > :nth-child(1) { order: -3; }
.myRow > :nth-child(2) { order: -2; }
.myRow > :nth-child(3) { order: -1; }
.myRow > :nth-child(5) { order: 1; }
.myRow > div {
background-color: lightgray;
}
<div class="myRow">
<div style="color:blue;">aa</div>
<div style="color:red;">bb</div>
<div style="color:green;">ccc</div>
<div style="color:orange;">ddd</div>
<div style="color:purple;">eee</div>
</div>
以下是关于这项工作的更多信息:
因为默认值
秩序
属性为
0
,然后按源顺序放置项目,这是浏览器看到
nth-child
上面的伪类代码:
.myRow > :nth-child(1) { order: -3; }
.myRow > :nth-child(2) { order: -2; }
.myRow > :nth-child(3) { order: -1; } /*
.myRow > ::before { order: 0; }
.myRow > :nth-child(4) { order: 0; }
.myRow > ::after { order: 0; } */
.myRow > :nth-child(5) { order: 1; }