使用auto-fill或auto-fit作为repeat()符号的第一个参数。
<auto-repeat> repeat()符号的变体:
repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
自动
当自动填充被赋予重复次数时,如果网格
容器在相关轴上有一个确定的大小或最大大小
重复次数为可能的最大正整数
这不会导致网格溢出其网格容器。
https://www.w3.org/TR/css-grid-1/#valdef-repeat-auto-fill
.grid {
显示:网格;
grid-gap: 10 px;
Grid-template-columns: repeat(自动填充,186px);
}
.grid > * {
背景颜色:绿色;
身高:200 px;
}
< div class = "网格" >
< div > 1 < / div >
2 < div > < / div >
< div > 3 < / div >
4 < div > < / div >
< / div >
网格将在不溢出容器的情况下重复尽可能多的轨迹。
在这种情况下,给出上面的例子(见图),只有5个轨道可以容纳网格容器而不会溢出。我们的网格中只有4个项目,因此在剩余空间中创建了第五个项目作为空轨道。
剩余的空间,轨道#6,结束显式网格。这意味着没有足够的空间来放置另一条轨道。
auto-fit
auto-fit关键字的行为与自动填充相同,除了
在网格项目放置后,任何空重复轨道被折叠。
https://www.w3.org/TR/css-grid-1/#valdef-repeat-auto-fit
.grid {
显示:网格;
grid-gap: 10 px;
Grid-template-columns: repeat(auto-fit, 186px);
}
.grid > * {
背景颜色:绿色;
身高:200 px;
}
< div class = "网格" >
< div > 1 < / div >
2 < div > < / div >
< div > 3 < / div >
4 < div > < / div >
< / div >
网格仍然会在不溢出容器的情况下重复尽可能多的轨道,但空轨道将被折叠为0。
折叠轨迹被视为具有固定的0px轨迹大小函数。
与自动填充图像示例不同的是,空的第五个轨道被折叠,在第四个项目之后结束显式网格。
自动填充vs自动匹配
当使用minmax()函数时,两者之间的差异是显而易见的。
使用minmax(186px, 1fr)将项目的范围从186px到网格容器剩余空间的一小部分。
当使用自动填充时,一旦没有空间放置空轨道,项目将会增长。
.grid {
显示:网格;
grid-gap: 10 px;
Grid-template-columns: repeat(自动填充,最小值(186px, 1fr));
}
.grid > * {
背景颜色:绿色;
身高:200 px;
}
< div class = "网格" >
< div > 1 < / div >
2 < div > < / div >
< div > 3 < / div >
4 < div > < / div >
< / div >
当使用自动拟合时,项目将增长以填充剩余的空间,因为所有的空轨道将被折叠为0px。
.grid {
显示:网格;
grid-gap: 10 px;
Grid-template-columns: repeat(auto-fit, minmax(186px, 1fr));
}
.grid > * {
背景颜色:绿色;
身高:200 px;
}
< div class = "网格" >
< div > 1 < / div >
2 < div > < / div >
< div > 3 < / div >
4 < div > < / div >
< / div >
操场上:
CodePen
检查自动填充轨道
检查自动安装轨道