html - 下拉菜单很难保持打开状态

标签 html css navigationbar

这是 SO 中经常解决的问题,但这里几乎有 5 个线程没有提供任何帮助。除非我多次将鼠标悬停在初始元素上,否则下拉菜单项不会保持打开状态。我无法在特定类中找到问题,我们将不胜感激。 这是 CSS 代码:

nav ul {
    list-style: none;
}
nav ul li {
    display: block;
    float: right;
}
nav ul ul {
    display: none;
    position: relative;
    margin-top: 60px;
}
nav ul li:hover > ul {
    display: block;
    position: absolute;
    margin-left: -30px;
}
nav ul ul li {
    width: 170px;
    float: none;
    display: block;
}
#navigation_bar a {
    display: block;
    float: right;
    padding: 5px;
    font-size: 25px;
    color: black;
}
#navigation_bar a:hover {
    border-radius: 20px;
    color: #FFFFFF;
    transition: color 0.2s;
}
div nav {
    display: block;
}

这是相应的 HTML 代码:

<div id="navigation_bar">
    <nav>
        <ul>
            <li><a href="">شركتنا</a></li>
            <li><a href="">الخدمات</a></li>
            <li><a href="">المركز الإعلامي</a>
                <ul>
                <li><a href="">آخر الأخبار</a></li>
                <li><a href="">معرض الصور</a></li>
                </ul>
            </li>
            <li><a href="">التحميلات</a></li>
            <li><a href="">اتصل بنا</a></li>
        </ul>
    </nav>
</div>

最佳答案

这是因为父导航和子下拉列表之间有一点差距。当您尝试将鼠标悬停在子下拉菜单上并且光标越过此间隙时,您将失去 li:hover 状态,因此下拉菜单会隐藏。

nav ul ul {
    ...
    margin-top: 43px;
    ...
}

https://jsfiddle.net/mq29ac39/1/

现在将这个与原来的 margin-top: 63px

进行比较

https://jsfiddle.net/mq29ac39/2/

我为背景添加了一种颜色,以便更好地了解间隙

关于html - 下拉菜单很难保持打开状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35009212/

相关文章:

html - 这个css代码是什么意思?

jquery - 如何使用CSS变换实现两个多步表单,每边一个表单

html - 使用 flex 的响应式导航栏不会折叠

javascript - 如何在没有 JS 的情况下获得带有嵌套 UL 的大型菜单?

javascript - 如何通过使用HTML/CSS/Javascript单击当前页面上的按钮,使div框显示在其他页面上?

css - 如何控制容器高度?

html - '溢出-x : scroll' inside a fixed div prevents vertical scrolling on ios

css - 无法获取图像链接以使用 translate3d 悬停

html - 用图像替换导航栏文本?

javascript - 达到一定滚动距离时触发事件 jQuery