CSSフレックスボックスでのタイルレイアウトの問題点

タイルレイアウトの最初の問題は、ある意味ですぐに明らかです。 親要素に明示的に高さを設定しなければならないのは非常に不便です。 ブロックの数が動的に変化し、9個より多くなったり少なくなったりする可能性は十分あります。

そして二つ目の問題は、ブロックの数が最後の行に十分な数のブロックを収められない場合に発生します。 この場合、最後の行は見苦しい見た目になってしまいます:

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

Результат:

結果的に、水平方向においてもspace-betweenの値は私たちのケースではうまく機能していません。

まとめます: 子要素の数が常に一定で親要素に適切に収まる場合は、space-betweenを使用したタイルレイアウトは十分に便利なものです。 そうでない場合は、別の何かを考案しなければなりません。

Задание 1

12個の要素が与えられます。 これらを1列あたり4個のタイルレイアウトにし、各要素の幅を100px、間隔を20pxにしてください。

Задание 2

12個の要素が与えられます。 これらを1列あたり3個のタイルレイアウトにし、各要素の幅を150px、間隔を10pxにしてください。