【发布时间】:2017-10-04 18:33:57
【问题描述】:
我有一个垂直导航菜单,上面有父项和非父项。我希望父母在悬停时显示他们的孩子页面,并且我希望这可以推动上面的项目。 HTML:
<nav class="main">
<ul>
<li>
<a href="">Lorem</a>
<ul>
<li><a href="">Ipsum</a></li>
<li><a href="">Dolor</a></li>
<li><a href="">Sit</a></li>
<li><a href="">Amet</a></li>
</ul>
</li>
<li>Something</li>
</ul>
</nav>
CSS:
nav.main ul ul {
display: none
}
nav.main ul li:hover ul {
display: block;
}
但是当鼠标离开父项时,子项消失并且菜单发生变化,这是令人不安的,因为鼠标的指针突然在不同的项上(例如:鼠标从“Amet”移动到“Something”)。所以我所做的是使用平滑过渡,但在这种情况下,“显示”不再起作用,“可见性”不会压低孩子,它们只是作为菜单上的第二层出现。在https://jsfiddle.net/LgvhLxya/1/ 的示例中,我希望在显示“Lorem”的孩子时将项目“Something”下推。
【问题讨论】:
-
当你将鼠标悬停在 lorem 时,它已经将子元素向下推了。
-
是的,但请尝试将鼠标从 Amet 移开并单击某物。块不再显示的方式令人不安,并且在长菜单中是不可能的。