Это может быть невозможно только с помощью CSS.
Что вам действительно нужно, так это JavaScript.Потому что без него вы просто устанавливаете видимость внутренних списков на visibility: hidden
, а элементы с видимостью, установленной на скрытый, учитываются при создании макета div
или страницы.Это причина переполнения в направлении х.
С помощью всего лишь CSS вы должны будете установить постоянную ширину основного списка, которая может вместить внутренние списки.
Ниже приведен CSSчто я пробовал и работает с фиксированной шириной.Поместите это вместо CSS, который вы добавляете.Поэтому вместо этого:
li.dropdown ul {
overflow-y: scroll;
height: 300px;
}
Добавьте это:
li.dropdown ul {
overflow-y: scroll;
overflow-x: hidden;
height: 300px;
width: 450px;
}
li {
width: 100px;
}