Я писал собственное решение, это не сложно, в принципе.
Но есть и готовые jQuery плагины, например этот —
352media.github.io/flexMenuВ частных случаях можно обойтись без javascript.
Под частными случаями я подразумеваю меню, которое не будет часто изменяться, а при изменениях всегда есть возможность привлечь верстальщика для правок.
Суть проста — хардкодим медиазапросами.
Структура примерно такая
<ul>
<li class="more">...</li>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
.more изначально скрыт, при уменьшении ширины ставим брикпойнт, показываем .more абсолютом в конце меню, и также абсолютами позиционируем последние не помещающиеся пункты в столбик.
Эти пункты делаем скрытми и показываем их правилом
ul:hover > li { display: block}
При большем уменьшении ширины, всё больше пунктов позиционируем в столбик.
Да, это не по феншую. Зато просто и работает. В определённых случаях может быть простым и быстрым решением проблемы.