Я делал горизонтальное раскрывающееся меню и при размещении каждого выпадающего меню под своим предметом, в лучшем случае, в лучшем случае.Влево: 0; требуется для позиции?
#nav { float:right; }
#nav li { display:inline;position:relative; }
#nav li ul { display:none; }
#nav li ul.current { position:absolute; display:block; z-index:9; left:0; }
#nav li ul.current li { display:block; }
И структура меню
<ul id="nav">
<li><a href="#">link</a>
<ul>
<li><a href="#">sub</a></li>
</ul>
</li>
<li><a href="#">link</a>
<ul>
<li><a href="#">sub</a></li>
</ul>
</li>
</ul>
и некоторые JS, чтобы заставить его работать
$(document).click(function(e) {
if($(e.target).is("#nav li a")) {
$("#nav li ul.current").removeClass("current");
$(e.target).parent().find("ul").addClass("current");
} else {
$("#nav li ul.current").removeClass("current");
}
});
меню работает с этим кодом, но мой вопрос:
Почему - левая: 0; требуется для #nav li ul.current для правильного позиционирования подменю?
Без левого: 0; он работает только в хроме. Opera, FF и IE8 создают подменю в месте начала #nav ul.
Я думал, что абсолютно позиционированный элемент попал в ближайший родительский элемент с положением, отличным от статического. Какой будет #nav li, а не #nav.