CSS-Parameter für einfache Grid-Layouts

Revision für “CSS-Parameter für einfache Grid-Layouts” erstellt am 7. September 2026, 14:25:18

Titel
CSS-Parameter für einfache Grid-Layouts
Inhalt
<h2>CSS-Parameter für einfache Grid-Layouts</h2> Mit den folgenden CSS-Eigenschaften kannst du eine Beitragsliste in UpFront relativ einfach als Grid bzw. als flexible Karten darstellen. <h3><code>display: flex</code></h3> Aktiviert das <strong>Flexbox-Layout</strong> für ein Element. <pre><code class="language-css">ul.uf-posts { display: flex; } </code></pre> Die direkten Kind-Elemente des Containers – hier also die einzelnen Beiträge – können dadurch flexibel angeordnet werden. <hr> <h3><code>flex-wrap: wrap</code></h3> Erlaubt den Elementen, in die nächste Zeile umzubrechen, wenn nicht mehr genügend Platz vorhanden ist. <pre><code class="language-css">flex-wrap: wrap; </code></pre> Ohne <code>wrap</code> würden die Elemente möglichst in einer einzigen Zeile bleiben. Für responsive Grids ist <code>wrap</code> deshalb besonders praktisch. <hr> <h3><code>flex</code></h3> Mit <code>flex</code> bestimmst du, wie sich ein Flex-Element innerhalb des verfügbaren Platzes verhält. <pre><code class="language-css">flex: 1 1 calc(33.333% - 20px); </code></pre> Die drei Werte bedeuten: <ul> <li><code>1</code> – das Element darf wachsen.</li> <li><code>1</code> – das Element darf schrumpfen.</li> <li><code>calc(33.333% - 20px)</code> – die Ausgangsbreite beträgt ungefähr ein Drittel des verfügbaren Platzes, abzüglich des gewünschten Abstands.</li> </ul> Damit lassen sich beispielsweise drei gleich große Spalten erzeugen. <hr> <h3><code>min-width</code></h3> Legt die <strong>minimale Breite</strong> eines Elements fest. <pre><code class="language-css">min-width: 280px; </code></pre> Ein Beitrag wird dadurch nicht schmaler als <code>280px</code>. Wird der verfügbare Platz kleiner, können die Elemente dank <code>flex-wrap: wrap</code> in die nächste Zeile wechseln. Das ist besonders für responsive Layouts hilfreich. <hr> <h3><code>max-width</code></h3> Legt die <strong>maximale Breite</strong> eines Elements fest. <pre><code class="language-css">max-width: 460px; </code></pre> Das Element kann also kleiner sein, aber nicht breiter als <code>460px</code> werden. Das eignet sich besonders für Kartenlayouts, bei denen die einzelnen Beiträge nicht beliebig breit werden sollen. <hr> <h3><code>box-sizing: border-box</code></h3> Sorgt dafür, dass <code>padding</code> und <code>border</code> bereits in der angegebenen Breite enthalten sind. <pre><code class="language-css">box-sizing: border-box; </code></pre> Ohne <code>border-box</code> kann ein Element durch Padding oder Border tatsächlich breiter werden als die angegebene Breite. Für flexible Layouts ist <code>border-box</code> deshalb meistens die unkompliziertere Variante. <hr> <h3><code>gap</code></h3> Definiert den Abstand zwischen den Flex-Elementen. <pre><code class="language-css">gap: 30px; </code></pre> Hier beträgt der Abstand zwischen den Beiträgen <code>30px</code>. Der Vorteil gegenüber zusätzlichen <code>margin</code>-Angaben: Du musst nicht jedem einzelnen Beitrag eigene Abstände geben. <hr> <h3><code>display: inline-flex</code></h3> Kombiniert das Verhalten eines Inline-Elements mit Flexbox. <pre><code class="language-css">display: inline-flex; </code></pre> Das Element verhält sich nach außen ähnlich wie ein Inline-Element, seine eigenen Inhalte können innerhalb des Elements aber mit Flexbox angeordnet werden. <hr> <h2>Kurzreferenz</h2> <table> <thead> <tr> <th>Parameter</th> <th>Funktion</th> </tr> </thead> <tbody> <tr> <td><code>display: flex</code></td> <td>Aktiviert Flexbox</td> </tr> <tr> <td><code>display: inline-flex</code></td> <td>Flexbox + Inline-Verhalten</td> </tr> <tr> <td><code>flex-wrap: wrap</code></td> <td>Erlaubt Zeilenumbrüche</td> </tr> <tr> <td><code>flex</code></td> <td>Bestimmt Wachstum, Schrumpfen und Ausgangsbreite</td> </tr> <tr> <td><code>min-width</code></td> <td>Legt die minimale Breite fest</td> </tr> <tr> <td><code>max-width</code></td> <td>Legt die maximale Breite fest</td> </tr> <tr> <td><code>box-sizing: border-box</code></td> <td>Bezieht Padding und Border in die Breite ein</td> </tr> <tr> <td><code>gap</code></td> <td>Definiert den Abstand zwischen den Elementen</td> </tr> <tr> <td><code>calc()</code></td> <td>Berechnet einen CSS-Wert dynamisch</td> </tr> </tbody> </table> <h3>Typische Kombination</h3> Für ein einfaches responsives Grid ist diese Kombination besonders praktisch: <pre><code class="language-css">ul.uf-posts { display: flex; flex-wrap: wrap; gap: 30px; } li.uf-post { min-width: 280px; box-sizing: border-box; } </code></pre> Darauf kannst du dann je nach gewünschtem Layout weitere Eigenschaften wie <code>flex</code> oder <code>max-width</code> aufbauen.
Auszug


AltNeuDatum erstelltAutorAktionen
7. September 2026, 14:25:18 DerNerd