我有一个网格,在大屏幕上(@media (min-width: 800px)
)使用12列网格,使用以下指令:
grid-template-columns: repeat(12, [col-start] 1fr);
但是对于移动设备,我使用以下方式:
grid-template-columns: repeat(4, [col-start] 1fr);
一切都很好,没有明显的问题。但是如果我添加 grid-gap: 1rem;
后,对于小屏幕,问题就变得明显了。因为看起来即使我指定了4列,它将其视为12列,其中4列宽度为25%,其余为0像素,因此存在CSS的错误行为。
目前我无法在JSFiddle中重现它,但我有一些问题的图片。
大屏幕12列网格:
应用样式:(其他计算值)
@media (min-width: 800px) {
.my-grid {
display: grid;
padding: 2.5rem 4.875rem 0 4.875rem;
grid-template-columns: repeat(12,[col-start] 1fr);
}
}
对于4列:
![Not good 4 columns](https://istack.dev59.com/X1ugM.webp)
![computed values](https://istack.dev59.com/BmgaM.webp)
.my-grid {
display: grid;
grid-template-columns: repeat(4,[col-start] 1fr);
padding: 1rem;
}
从上面可以看到,4列网格的计算值中有4列设置了宽度,其余的都是0像素宽度...
在元素检查中,只有我上面写的这几行。
有什么想法,为什么会出现这种情况呢?
另外需要注意的是,我正在使用styled-components并且它是一个div。