Css 当容器被赋予最大尺寸时,为什么柔性网格会失去其灵活性?

Css 当容器被赋予最大尺寸时,为什么柔性网格会失去其灵活性?,css,flexbox,css-grid,Css,Flexbox,Css Grid,我有一个网格容器,它可以生成一个包含尽可能多的300px列的网格。它也是一个弹性项,并被赋予flex:1以填充其父项 请注意,默认情况下,弹性项的最小大小为min content,而不是流布局中的0。这会创建循环依赖关系,因为容器的最小大小取决于网格的大小,而网格的大小取决于容器的大小 然而,这似乎并不重要,因为灵活的网格列可以很好地回流。至少在我设置最大尺寸之前。一旦我设置了最大大小,min内容就不再重新计算,并保持网格当时的大小。反过来,容器不再收缩,网格也不再重新计算其列 为什么呢 这里有

我有一个网格容器,它可以生成一个包含尽可能多的
300px
列的网格。它也是一个弹性项,并被赋予
flex:1
以填充其父项

请注意,默认情况下,弹性项的最小大小为
min content
,而不是流布局中的
0
。这会创建循环依赖关系,因为容器的最小大小取决于网格的大小,而网格的大小取决于容器的大小

然而,这似乎并不重要,因为灵活的网格列可以很好地回流。至少在我设置最大尺寸之前。一旦我设置了最大大小,
min内容
就不再重新计算,并保持网格当时的大小。反过来,容器不再收缩,网格也不再重新计算其列

为什么呢

这里有一个简单的例子来说明这个问题。对于启用的
最大宽度
和禁用的
分别缩小一次屏幕大小。一旦柱回流,一旦不回流。这在所有主要浏览器中都是一致的

正文{
显示器:flex;
}
.集装箱{
边框:1px纯红;
弹性:1;
/*VVV切换我VVV*/
最大宽度:700px;
/* ^^^^^^^^^^^^^^^^^^^^ */
显示:网格;
网格模板列:重复(自动拟合,300px);
差距:1勒姆;
}
.项目{
填充:2rem0;
背景颜色:矢车菊蓝;
边框:1px纯蓝色;
}


add
min-width:0
add
min-width:0