Problemas de los mosaicos con flex en CSS

El primer problema de los mosaicos es bastante obvio de inmediato: es muy inconveniente que el padre tenga que establecer explícitamente la altura. Después de todo, bien puede darse el caso de que la cantidad de bloques cambie dinámicamente y su número será a veces menor, a veces mayor que 9.

Y el segundo problema surgirá si la cantidad de bloques es tal que en la última fila haya una cantidad insuficiente de bloques. En este caso, la última fila se verá terrible:

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;
}

Результат:

Resulta que incluso horizontalmente el valor space-between funciona mal en nuestro caso.

Resumiendo: si la cantidad de sus elementos hijos es siempre constante y cabe bien en el padre, entonces el mosaico con space-between es algo bastante conveniente. De lo contrario, tendrás que pensar en algo más.

Задание 1

Se dan 12 elementos. Haga un mosaico con 4 elementos por fila, con un ancho de cada elemento de 100px y una distancia entre ellos de 20px.

Задание 2

Se dan 12 elementos. Haga un mosaico con 3 elementos por fila, con un ancho de cada elemento de 150px y una distancia entre ellos de 10px.