Die Verwendung von grid-template-columns: repeat(auto-fit, minmax(600px, 1fr))
macht es einfach, ein reaktionsfähiges CSS-Gitter zu erstellen. Der Container wird mit so vielen Elementen gefüllt, die in eine Zeile passen, ohne eine Medienabfrage zu verwenden.Vollständig reagierende Objekte mit CSS-Gitter und automatischer Anpassung. Minmax
.container {
display: grid;
grid-gap: 5px;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}
.item {
height: 100px;
background: #ccc;
}
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Das Problem ist, dass die Elemente als der Bildschirm breiter sind, wenn der Bildschirm kleiner als der in angegebenen minmax()
min-Wert. Sie können dies beheben, indem Sie eine Medienabfrage unter 400px
hinzufügen. Dies funktioniert jedoch nur, wenn Sie wissen, dass sich kein Inhalt um den Container herum befindet. Und das ist fast unmöglich, wenn der Container irgendwo aufgestellt werden könnte.
Gibt es einen Weg oder eine Eigenschaft, den Elementen zu sagen, dass sie niemals breiter als 100% sein sollten?
Etwas wie: Füllen Sie den Container mit so vielen 400px-Elemente wie möglich, aber stellen Sie sicher, dass keiner von ihnen breiter als 100% der Breite des Containers wird.
Mehr über auto-fill und Auto-fit: https://blog.jonstodle.com/responsive-layout-with-css-grid-part-2-auto- fit-auto-fill/ – tobi
Da sich auf der Seite andere Elemente befinden, müsste Ihre Medienabfrage auf dem gesamten Layout basieren, nicht nur auf diesem einen Container. Also wenn * alle Inhalte * auf der Seite diesen Container auf 400px drücken, dann triggern Sie die Medienabfrage ... –
Verwenden Sie andernfalls ein Skript, das den Wert von 'grid-template-columns' wechselt, wenn es eine Breite von 400px erkennt der Kontainer. –