Unbekannte Breite für variable Spaltenanzahl
<p>Ich möchte einige Elemente in einer Spalte anordnen. Ich kann weder die Breite oder Höhe des Artikels noch die Breite oder Höhe des Behälters vorhersagen. Ich kann auch nicht vorhersagen, wie viele Spalten hineinpassen oder wie breit die Spalten sein sollten. Ich möchte, dass der Browser die Elemente in der maximalen Anzahl von Spalten anordnet, ohne die Breite des Containers zu überschreiten, und gleichzeitig die Höhe des Containers minimiert. </p>
<p>Das hat das Problem gelöst, aber gibt es einen besseren Weg? Kann dies ohne die Verwendung von jQuery erreicht werden? Kann es so gemacht werden, dass ältere Browser es richtig anzeigen (vielleicht indem man es in Zeilen statt in Spalten anordnet)? </p>
<pre class="brush:php;toolbar:false;"><style>
#wrapper {
Spaltenbreite: 100px; /* jQuery ändert diesen Wert */
Polsterung: 20px;
Rand: 2 Pixel durchgehend blau;
}
.Artikel {
Polsterung: 50px;
Rand: 2 Pixel durchgehend grün;
}
</style>
<div id="wrapper">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
// Ermittelt die maximale Breite der untergeordneten Elemente.
var maxWidth = 0;
jQuery('#wrapper .item').each(function() {
var width = jQuery(this).outerWidth(true);
if (width > maxWidth) {
maxWidth = Breite;
}
});
// Die Spaltenbreite des Wrappers auf die maximale Breite setzen.
jQuery('#wrapper').css('column-width', maxWidth + 'px');
</script></pre>
<p><br /></p>