Użyj jednego auto-fill
lub auto-fit
jako liczba powtórzeń w repeat()
notacji.
repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )
auto-fill
Gdy auto-fill
jako numer powtórzenia podano, jeśli pojemnik siatki ma określony rozmiar lub maksymalny rozmiar na odpowiedniej osi, to liczba powtórzeń jest największą możliwą liczbą całkowitą dodatnią, która nie powoduje przepełnienia siatki pojemnika siatki.
.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>
Siatka będzie powtarzać tyle ścieżek, ile to możliwe, bez przepełnienia swojego kontenera.
W tym przypadku, biorąc pod uwagę powyższy przykład (patrz ilustracja) , tylko 5 ścieżek może zmieścić się w kontenerze siatki bez przepełnienia. W naszej siatce są tylko 4 elementy, więc piąty jest tworzony jako pusty tor w pozostałej przestrzeni.
Reszta pozostałej przestrzeni, ścieżka nr 6, kończy jawną siatkę. Oznacza to, że nie było wystarczająco dużo miejsca, aby umieścić kolejny tor.
auto-fit
auto-fit
Kluczowe zachowuje się tak samo jak auto-fill
z tym, że po algorytmu placement pozycja siatki żadnych pustych utworów w pozostałej przestrzeni będzie upadł 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>
Siatka będzie nadal powtarzać tyle ścieżek, ile to możliwe, bez przepełnienia swojego kontenera, ale puste ścieżki zostaną zwinięte do 0
.
Zwinięty tor jest traktowany jako mający stałą funkcję zmiany rozmiaru 0px
.
W przeciwieństwie do auto-fill
przykładu z obrazkiem, pusta piąta ścieżka jest zwinięta, co kończy jawną siatkę zaraz po czwartym elemencie.
auto-fill
vs auto-fit
Różnica między nimi jest zauważalna, gdy minmax()
używana jest funkcja.
Służy minmax(186px, 1fr)
do określania zakresu elementów od 186px
do 186px
plus ułamek pozostałego miejsca w kontenerze siatki.
Podczas używania auto-fill
przedmioty będą rosły, gdy nie będzie miejsca na umieszczenie pustych ścieżek.
.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>
Podczas używania auto-fit
elementy będą rosły, aby wypełnić pozostałą przestrzeń, ponieważ wszystkie puste ścieżki są zwinięte 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>
Plac zabaw:
Sprawdzanie ścieżek automatycznego wypełniania
Sprawdzanie torów autodopasowania
grid-template-columns: auto auto auto auto;
działa w tym przypadku? =)