Извиняюсь за расплывчатый вопрос, я не могу придумать краткого, описательного.
Я делаю выпадающее меню из неупорядоченных списков, которые выглядят примерно так ...
<ul id="menu">
<li>Menu Item</li>
<li>Menu Item
<ul class="sub-menu">
<li>Sub Menu Item</li>
<li>Sub Menu Item</li>
</ul>
</li>
<li>Menu Item</li>
</ul>
Тем не менее, мне интересно, такого рода поведение позиционированиябыло бы возможно (изображения объясняют это лучше, я думаю)
Случай 1
Подменю центрировано на том, что оно содержит элемент списка, но шире, чем оно содержит элемент списка.
Случай 2
Подменю следует центрировать, но в корневом списке недостаточно свободного места, поэтому оно остается на одном уровне с левым краем корневых списков.
Дело 3
Как и дело 2, но на этот раз это правильный край.
Я думаю, что это можно разбить на две хитрые проблемы CSS.
- Как центрировать подменю в его контейнере, несмотря на то, что он шире его контейнера.
- Как предотвратить выход подменю за пределы элемента root-list.
Я буду реализовывать это поведение в Javascript, так как у меня крайний срок.Но для дальнейшего использования было бы неплохо узнать, можно ли это сделать только с помощью CSS.
Здесь есть JSFiddle , с которым можно поиграть, если у вас есть какие-либо теории.