<style type="text/css"> ul{ list-style-type: none; padding:0; margin:0; } #wrapper{ display:flex; flex-direction:row; flex-wrap:wrap; border:1px solid silver; max-height: 800px; overflow-y: scroll; max-width: 1200px; justify-content: flex-start; align-items: flex-start; } #wrapper>ul{ margin-bottom:10px; flex-grow:0; flex-basis:33%; } </style>
<div id="wrapper"> <?php } } ?> </div>
I wygląda to tak

Próbowałem też z flex-direction:column i wtedy mam coś takiego

UL układają się jedna pod drugą tak jak chcę ale nie mam kontroli na liczbą kolumn. Jeśli tych kategorii będzie dużo tworzą mi się kolejne kolumny i pojawia się poziomy suwak.. Próbowałem też użyć display grid ale też mi to nie wychodzi.
Czyli przy flex-direction:row mogę zadeklarować ilość kolumn (flex-basis:33%) ale robią się dziury między UL, z kolei przy flex-direction:column UL układają się jedna pod drugą ale nie mogę ograniczyć liczby kolumn. Ktoś podpowie jak to zrobić?