In diesem Szenario haben Sie eine responsive Flexbox-Box mit dynamisch gerenderten Karten, die Sie auf eine bestimmte Art und Weise verpacken möchten. Sehen wir uns an, wie dies erreicht werden kann:
Um das gewünschte Verhalten zu erzielen, können Sie die Technik der Verwendung von „Geister“-Elementen zusätzlich zu Ihren regulären Karten anwenden. Diese „Geister“-Elemente sind leere Divs, die am Ende des Flexbox-Containers hinzugefügt werden. Ihr Zweck besteht darin, den verbleibenden Raum optisch zu belegen und den Flexbox-Wickelmechanismus zu führen.
Wenn Sie beispielsweise eine mögliche Spaltenlänge von 4 haben möchten, benötigen Sie 3 „Geister“-Elemente. Diese Elemente würden die Breite und den Abstand Ihrer regulären Karten nachahmen und sicherstellen, dass die letzten beiden Karten auf der linken Seite beginnen und gleichmäßig verteilt sind.
<div class="recipe-grid"> <!-- Regular cards --> <div class="card">...</div> <div class="card">...</div> <div class="card">...</div> <div class="card">...</div> <!-- "Ghost" elements --> <div class="card"></div> <div class="card"></div> <div class="card"></div> </div>
Stellen Sie in Ihrem CSS sicher, dass die „Ghost“-Elemente Folgendes haben Styling:
.card:empty { width: 300px; <!-- Same width as regular cards --> box-shadow: none; margin: 2rem; padding-bottom: 0; }
Alternativ können Sie CSS-Pseudoelemente verwenden, um den Effekt von „Geister“-Elementen zu erzeugen. Mit dieser Technik können Sie die Verwendung zusätzlicher Divs im HTML vermeiden.
.card:nth-child(n+5) { <!-- Applies to all elements after the 4th child --> width: 300px; <!-- Same width as regular cards --> box-shadow: none; margin: 2rem; padding-bottom: 0; }
Diese Methode erstellt effektiv leere „Geister“-Leerzeichen nach der 4. Karte und erzielt so ein ähnliches visuelles Ergebnis wie der „Geister“-Element-Ansatz. Es ist jedoch wichtig zu beachten, dass diese Technik möglicherweise nicht von allen Browsern unterstützt wird.
Das obige ist der detaillierte Inhalt vonWie erzwinge ich ein konsistentes Umschließen dynamisch gerenderter Karten in Flexbox?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!