Рассмотрим следующий вложенный список:позиционирование HTML элементы вложенного списка
<div >
<ul class="main">
<li><a href="#">Fist item</a><ul class="ab"><li>a1</li><li>a2</li><li>a3</li><li>a4</li></ul>
</li>
<li><a href="#">Second item</a><ul class="ab"><li>b1</li><li>b2</li><li>b3</li><li>b4</li></ul></li>
<li><a href="#">Third item</a><ul class="ab"><li>c1</li><li>c2</li><li>c3</li><li>c4</li></ul>
</li>
</ul>
</div>
Я хочу внешний уровень отображается горизонтально, а внутренний уровень отображается чуть ниже внешнего. Для этой цели я использовал относительное и абсолютное положение для наружных и внутренних списков в стиле CSS:
#container {width:300px}
main {width:200px;position:relative;}
body > div > ul > li {display:block;float:left;padding:5px;}
body > div > ul > li > a:hover + .ab {display:block;}
.ab {display:none;clear:both;position:absolute;left:0px}
Он отлично работает, если вы не изменить размер ширины контейнера в 200px (как вы можете попробовать на JSfiddle) (я должен добиться решения, работающего с разной шириной). В этом случае контейнер внутреннего уровня перекрывает внешний. Интересно, можно ли заставить внутренний контейнер отображаться после внешнего контейнера через css или решить эту проблему по-другому.
Редактировать: Мне нужно сделать мой вопрос более ясным, потому что ответы на них пока показывают одно и то же предложение у меня есть already. Поэтому я сделал небольшое добавление в стилях css, объявляющих окно для внутреннего контейнера (здесь обновление JSfiddle snippet). Ключевой проблемой является то, что мой пример игрушек имитирует левый столбец на более сложной веб-странице. Я заранее не знаю точную ширину такого столбца (может быть, 150 пикселей, может быть, 200 пикселей или что-то подобное), и я не знаю, в какой пропорции длина заголовков для внешних элементов списка. Мне нужно решение, которое работает на любую ширину, которую может иметь внешний контейнер.
Это скриншот того, что я получаю в случае по умолчанию:
Это то, что я получаю сужая внешний контейнер 200px (попробовать себя на JSfiddle):
и это именно то, что я хочу получить:
Я надеюсь, что теперь был мой вопрос.
Можете ли вы предоставить визуальный мок Что вы пытаетесь достичь? – AdamJeffers