Problemi dei layout a griglia con i flex in CSS
Il primo problema del layout a griglia in realtà è abbastanza ovvio subito
- è molto scomodo il fatto che il genitore debba
avere un'altezza impostata esplicitamente. Dopotutto, potrebbe benissimo
succedere che il numero di blocchi cambi
dynamicamente e la loro quantità a volte sia inferiore,
a volte superiore a 9.
Il secondo problema, invece, si presenterà se il numero di blocchi è tale che nell'ultima riga ci sarà un numero insufficiente di blocchi. In questo caso l'ultima riga apparirà orribile:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
</div>
.parent {
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Risulta che anche orizzontalmente il valore
space-between funziona male nel nostro
caso.
In sintesi: se il numero dei vostri elementi figli
è sempre costante e si adatta bene al
genitore, allora il layout a griglia con space-between
è una cosa abbastanza comoda. Altrimenti
bisognerà inventare qualcos'altro.
Sono dati 12 elementi. Create un layout a griglia
di 4 elementi per riga con una larghezza
di ciascun elemento di 100px e una distanza
tra di loro di 20px.
Sono dati 12 elementi. Create un layout a griglia
di 3 elementi per riga con una larghezza
di ciascun elemento di 150px e una distanza
tra di loro di 10px.