簡體   English   中英

使用CSS顯示子菜單

[英]Show submenu with 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 

<a>不能嵌套在另一個<a> 您的html應該如下所示。

<a href="#" class="last" target="_self">Third item</a>
<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> 

和CSS應該是

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

 #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;} #submenu { display:none;} nav .parent:hover #submenu { display:block;} 
 <html> <nav> <a href="#" target="_self">First item</a> <a href="#" target="_self">Second item</a> <span class="parent"> <a href="#" class="last" target="_self">Third item</a> <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> </span> </nav> </html> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM