У меня вопрос простой - возможна ли такая раскладка? Я приложил некоторый код и то, как он должен выглядеть. В нем есть меню с категориями с одной стороны и продуктами с другой. Когда div с категориями заканчивается, div товаров должен заполнить всю ширину ниже.
Разделение #products на два отдельных div не очень хорошая идея для меня, потому что, например, высота #menu может быть 1,5 ряда с картинками.
<style>
#menu {
???
}
#products {
???
}
</style>
<section class = "container">
<div id = "menu">
...
</div>
<div id = "products">
<img src....>
...more images
</div>
</div>






Вы можете приблизиться к этому, используя CSS Grid.
.container {
display: grid;
grid-auto-rows: 1fr;
grid-template-columns: repeat(3, 1fr);
grid-gap: 5px;
}
.menu {
background-color: orange;
grid-row-start: 1;
grid-row-end: 3;
}
.product {
background-color: gray;
}
.menu,
.product {
padding: 2em;
}<div class = "container">
<div class = "menu"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
<div class = "product"></div>
</div>
OP. Просто обратите внимание, что в зависимости от вашего вопроса вам может понадобиться JS для настройки размера меню/свойства css меню «grid-row-end», если, как вы говорите, оно динамическое.