CSS flexbox имеет функцию разделения гибкого элемента на несколько строк (или столбцов). По умолчанию контейнер flex будет соответствовать всем гибким элементам вместе. Например, строка будет находиться в одной строке. Однако, используя свойство <code>flex-wrap</code> , он сообщает CSS об обертке элементов. Это означает, что дополнительные элементы перемещаются в новую строку или столбец. Точка прерывания, в которой происходит обертка, зависит от размера элементов и размера контейнера. CSS также имеет опции для направления переноса: <ul><li><code>nowrap</code> : это значение по умолчанию и не переносит элементы. </li><li><code>wrap</code> : обертывает элементы слева направо, если они находятся в строке или сверху вниз, если они находятся в столбце. </li><li><code>wrap-reverse</code> : обертывает элементы снизу вверх, если они находятся в строке или справа налево, если они находятся в столбце. </li></ul>
В текущем макете слишком много ящиков для одной строки. Добавьте свойство <code>flex-wrap</code> в элемент <code>#box-container</code> и придайте ему значение wrap.