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:

html<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>
css.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.

Задание 1

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.

Задание 2

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.