使用auto-fill
或auto-fit
作为repeat()
符号的重复编号。
repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )
auto-fill
当auto-fill
将其指定为重复次数时,如果网格容器在相关轴上具有确定的大小或最大大小,则重复次数是不会导致网格溢出其网格容器的最大可能的正整数。
.grid {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, 186px);
}
.grid>* {
background-color: green;
height: 200px;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
网格将重复尽可能多的轨道,而不会溢出其容器。
在这种情况下,给定上面的示例(参见图片),只有5条轨道可以容纳网格容器而不会溢出。我们的网格中只有4个项目,因此第五个项目在剩余空间中被创建为空轨道。
其余的剩余空间,轨道#6,结束显式网格。这意味着没有足够的空间放置另一条轨道。
auto-fit
该auto-fit
关键字的行为一样auto-fill
,只是后电网项目布局算法的剩余空间内的任何空轨迹会晕倒0
。
.grid {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fit, 186px);
}
.grid>* {
background-color: green;
height: 200px;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
网格仍将重复尽可能多的轨道,而不会溢出其容器,但是空轨道将折叠为0
。
坍塌的轨道被视为具有固定的轨道大小调整功能0px
。
与auto-fill
图像示例不同,空白的第五条轨迹是折叠的,在第四个项目之后立即结束显式网格。
auto-fill
与 auto-fit
minmax()
使用该功能时,两者之间的区别非常明显。
用于minmax(186px, 1fr)
将项目范围从186px
到186px
加上网格容器中剩余空间的一小部分。
使用时auto-fill
,一旦没有空间放置空白轨道,这些项目就会增长。
.grid {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(186px, 1fr));
}
.grid>* {
background-color: green;
height: 200px;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
使用时auto-fit
,由于所有空轨道都折叠到了,物品会增长来填充剩余空间0px
。
.grid {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(186px, 1fr));
}
.grid>* {
background-color: green;
height: 200px;
}
<div class="grid">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
操场:
检查自动填充轨道
检查自动装配轨道
grid-template-columns: auto auto auto auto;
在这种情况下有效吗?=)