Utilisez l'un auto-fill
ou l' autre auto-fit
comme numéro de répétition de la repeat()
notation.
repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )
auto-fill
Lorsque auto-fill
est donné comme numéro de répétition, si le conteneur de grille a une taille définie ou une taille maximale dans l'axe concerné, alors le nombre de répétitions est le plus grand entier positif possible qui n'entraîne pas le débordement de la grille de son conteneur de grille.
.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>
La grille répétera autant de pistes que possible sans déborder de son conteneur.
Dans ce cas, étant donné l'exemple ci-dessus (voir image) , seules 5 pistes peuvent rentrer dans la grille-conteneur sans déborder. Il n'y a que 4 éléments dans notre grille, donc un cinquième est créé comme une piste vide dans l'espace restant.
Le reste de l'espace restant, la piste n ° 6, termine la grille explicite. Cela signifie qu'il n'y avait pas assez d'espace pour placer une autre piste.
auto-fit
Le auto-fit
mot-clé se comporte de la même manière que auto-fill
, sauf qu'après l' algorithme de placement des éléments de grille, toutes les pistes vides dans l'espace restant seront réduites en 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>
La grille répètera toujours autant de pistes que possible sans déborder de son conteneur, mais les pistes vides seront réduites en 0
.
Une piste réduite est traitée comme ayant une fonction de dimensionnement de piste fixe de 0px
.
Contrairement à l' auto-fill
exemple d'image, la cinquième piste vide est réduite, mettant fin à la grille explicite juste après le quatrième élément.
auto-fill
contre auto-fit
La différence entre les deux est perceptible lorsque la minmax()
fonction est utilisée.
Utilisez minmax(186px, 1fr)
pour étendre les éléments de 186px
à 186px
plus une fraction de l'espace restant dans le conteneur de grille.
Lors de l'utilisation auto-fill
, les éléments grandiront une fois qu'il n'y aura plus d'espace pour placer des pistes vides.
.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>
Lors de l'utilisation auto-fit
, les éléments grandissent pour remplir l'espace restant car toutes les pistes vides sont réduites 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>
Terrain de jeux:
Inspection des pistes à remplissage automatique
Inspection des pistes à ajustement automatique
grid-template-columns: auto auto auto auto;
fonctionne dans ce cas? =)