[英]How to show/hide when hover in/out on specific element
我做了一个辅助菜单,我喜欢当用户将鼠标悬停在特定的主菜单项上时显示该菜单。
我尝试了这段代码,但是没有用...
.second-menu {display:none} ul li #2:hover + .second-menu {display:block}
<ul> <li id="1">first</li> <li id="2">second</li> <li id="3">third</li> <ul> <div class="second-menu"> <ul> <li>page1</li> <li>page2</li> <li>page3</li> </ul> </div>
有什么建议吗?...只能通过CSS或javascript ....
.second-menu{ display:none; } li:hover >.second-menu{ display:block; }
<ul> <li id="1">first</li> <li id="2">second <ul class="second-menu"> <li>page1</li> <li>page2</li> <li>page3</li> </ul> </li> <li id="3">third</li> <ul>
如果要使用CSS,则必须将子菜单放在要悬停的元素内。
对于CSS,C.Raf.T的答案是完美的。
如果出于某种原因您想使用javascript,则可以执行以下操作
document.getElementById('2').addEventListener('mouseenter', function ()
{
document.getElementById('subMenu').style.display = "block";
});
document.getElementById('2').addEventListener('mouseleave', function ()
{
document.getElementById('subMenu').style.display = "none";
});
注意:以上代码要求您向包含菜单的div中添加一个“ subMenu” ID。 如果您希望仅通过一个悬停事件显示serval菜单,请改用一个类。
但老实说,如果您需要的只是嵌套子菜单,那么CSS答案是最好的选择。 如果子菜单必须在父菜单之外,则需要使用javascript。
通过使用纯CSS,您必须确保子菜单( .second-menu
)是悬停的HTML元素的子节点。 因为不幸的是CSS不知道父选择器。
通过使用JS,您将更加灵活。 表示将子菜单放置在任意位置。
* { margin: 0; padding: 0; } .second-menu {display:none; border: 1px solid blue; width: 100%; position: absolute; left: 0; right: 0; } ul li#two:hover > .second-menu {display:block} .relative { position: relative; border: 1px solid black; } li { display: inline-block; }
<ul class="relative"> <li id="one">first</li> <li id="two">second <ul class="second-menu"> <li>page1</li> <li>page2</li> <li>page3</li> </ul> </li> <li id="three">third</li> <ul>
使用Javascript回答,
document.getElementById('hover').onmouseover = function(){ document.getElementById('second-menu').style.display = 'block'; } document.getElementById('hover').onmouseout = function(){ document.getElementById('second-menu').style.display = 'none'; }
.second-menu{ display:none; }
<ul id="hover"> <li id="1">first</li> <li id="2">second</li> <li id="3">third</li> <ul> <div class="second-menu" id="second-menu"> <ul> <li>page1</li> <li>page2</li> <li>page3</li> </ul> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.