Я опускаю горизонтальное меню, которое работает нормально, пока я не покину его.Чтобы проиллюстрировать проблему лучше, вот несколько скриншотов:
- Когда я наведу курсор мыши на «Пункт меню 3»:
![enter image description here](https://i.stack.imgur.com/UlNoG.png)
- Когда я наведу курсор мыши на ul (Chrome):
![enter image description here](https://i.stack.imgur.com/NgRao.png)
- При наведении мыши на ul (Firefox):
![enter image description here](https://i.stack.imgur.com/roabc.png)
При наведении мыши на ul мне нужно меню, которое остается на скриншоте 1. Вотмой HTML:
<div style="position: relative">
<nav>
<ul id="main-menu">
<li>@Html.ActionLink("Menu item 1", "Index", "InternalHome")</li>
<li>@Html.ActionLink("Menu item 2", "Index", "TeachingMaterials")
<ul>
<li>@Html.ActionLink("Menu item 2.1", "Index", "TeachingMaterials")</li>
</ul>
</li>
<li>@Html.ActionLink("Menu item 3", "Index", "TeachingMaterials")
<ul>
<li>@Html.ActionLink("Menu item 3.1", "Index", "TeachingMaterials")</li>
<li>@Html.ActionLink("Menu item 3.2", "Index", "TeachingMaterials")</li>
<li>@Html.ActionLink("Menu item 3.3", "Index", "TeachingMaterials")</li>
</ul>
</li>
<li>@Html.ActionLink("Menu item 4", "Index", "TeachingMaterials")
<li>@Html.ActionLink("Menu item 5", "Index", "TeachingMaterials")
</ul>
</nav>
</div>
CSS:
#main-menu *
{
margin: 0;
padding: 0;
}
#main-menu
{
position: absolute;
top: 0;
left: 0;
margin-left: 100px;
}
#main-menu li
{
list-style: none;
float: left;
}
#main-menu li a
{
margin-right: 5px;
padding: 2px;
display: block;
}
#main-menu li ul li a
{
display: block;
width: 100%;
}
#main-menu li ul
{
display: none;
}
#main-menu li:hover ul
{
position: absolute;
display: inline;
left: 0;
width: 100%;
}
#main-menu li:hover li
{
float: left;
}
и простой JS для отображения подменю:
$(document).ready(function () {
var menuLinks = $("#main-menu li");
menuLinks.hover(function () {
$("#main-menu li ul").hide();
var menuLinkChildren = $(">ul", $(this));
if (menuLinkChildren.length > 0) {
menuLinkChildren.show();
}
return false;
}, null);
});