javascript - 使用 css 显示子菜单

标签 javascript jquery html css

这是我的菜单。当我将鼠标移到最后一项时,我想显示子菜单(在最后一项中)。我试图只用 css 来做,但它不起作用。这是代码

#submenu {
    display: block;
    position:absolute;
    float:right;
    right:26px;
    background-color:#f1f3f5;
    width:21%;
}
#submenu li {
    border-bottom: 1px solid #c2c5c9;
    padding: 5px 5px;
    text-align:right;
}
#submenu li:first-child {
    padding-top: 10px;
}
#submenu li:last-child {
    border-bottom: none;
}
#submenu li a {
    border-right: 0 !important;
    padding:5px 2px 0 0;
}
nav .last:hover > #submenu {
    display:block;
}
<nav>
    <a href="#" target="_self">First item</a>
    <a href="#" target="_self">Second item</a>
    <a href="#" class="last" target="_self">Third item
        <ul id="submenu">
            <li><a href="#">Submenu item 1</a></li>
            <li><a href="#">Submenu item 2</a></li>
            <li><a href="#">Submenu item 3</a></li>
        </ul>                                                       
    </a>
</nav>

当我将鼠标悬停在最后一个导航项上时,是否可以显示/隐藏子菜单?

最佳答案

这是你可以这样做的方法:

nav a.last:hover+#submenu { display:block;} 

完整运行示例:

#submenu {
    display: none;
    position:absolute;
    float:right;
    right:26px;
    background-color:#f1f3f5;
    width:21%;
}
#submenu li {
    border-bottom: 1px solid #c2c5c9;
    padding: 5px 5px;
    text-align:right;
}
#submenu li:first-child {
    padding-top: 10px;
}
#submenu li:last-child {
    border-bottom: none;
}
#submenu li a {
    border-right: 0 !important;
    padding:5px 2px 0 0;
}
nav .last:hover > #submenu {
    display:block;
}
nav a.last:hover+#submenu { display:block;} 
<nav>
    <a href="#" target="_self">First item</a>
    <a href="#" target="_self">Second item</a>
    <a href="#" class="last" target="_self">Third item
        <ul id="submenu">
            <li><a href="#">Submenu item 1</a></li>
            <li><a href="#">Submenu item 2</a></li>
            <li><a href="#">Submenu item 3</a></li>
        </ul>                                                       
    </a>
</nav

关于javascript - 使用 css 显示子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33912511/

相关文章:

html - 如何改进我的 CSS + HTML 工作流程?

javascript - 当事件 $emit 发出时,Vue $on 不运行我的函数,即使我可以看到在 Vue 控制台中触发的事件

javascript - 使用 jQuery 动态添加删除行

javascript - 通过书签在 javascript include 之前运行的函数

javascript - 如何在 Phonegap 中创建嵌套目录

html - 无法插入背景图片 html/css

javascript - Aframe.io : Add border to <a-curvedimage> on mouseover using

Javascript - 重定向到带有 POST 数据的页面

javascript - 鼠标滚轮滚动在 Div 中不起作用

javascript - 创建一个特殊的 jQuery 函数