我想我的问题以前已经回答过很多次了,但我找不到我的确切情况。
我有一个带有子菜单的垂直菜单,我只想在单击父级(而不是悬停)时显示子菜单,一次只显示一个子菜单,在单击菜单外的某个位置后,我希望子菜单消失。
这就是我现在所拥有的——它基于现在的悬停。我尝试将 a:hover 更改为 a:active 之类的东西,但效果不佳(我的 CSS 不太好)。
/* The container */ #cssmenu > ul { display: block; position: relative; //width: 190px; width:100%; } /* The list elements which contain the links */ #cssmenu > ul li { display: block; position: relative; margin: 0; padding: 0; width: 100%; } /* General link styling */ #cssmenu > ul li a { display: block; position: relative; margin: 2; width:95%; height:50px; background-color:#ABC578; border-left:solid 0px #FFFFFF; border-bottom:solid 1px #FFFFFF; font: 0.7em Tahoma, sans-serif; font-size: 14px; font-weight:bold; color: #FFFFFF; text-decoration:none; padding-top:30px; } /* The hover state of the menu/submenu links */ #cssmenu > ul li>a:hover, #cssmenu > ul li:hover>a { color: #fff; text-shadow: 0 1px 0 rgba(0, 0, 0, .3); background: #82c500; background: -webkit-linear-gradient(bottom, #82c500, #000000); background: -ms-linear-gradient(bottom, #82c500, #000000); background: -moz-linear-gradient(bottom, #82c500, #000000); background: -o-linear-gradient(bottom, #82c500, #000000); border-color: transparent; } /* The arrow indicating a submenu */ #cssmenu > ul .has-sub>a::after { content: ''; position: absolute; top: 34px; right: 8px; width: 0px; height: 0px; /* Creating the arrow using borders */ border: 4px solid transparent; border-left: 4px solid #d8d8d8; } /* The same arrow, but with a darker color, to create the shadow effect */ #cssmenu > ul .has-sub>a::before { content: ''; position: absolute; top: 35px; right: 8px; width: 0px; height: 0px; /* Creating the arrow using borders */ border: 4px solid transparent; border-left: 4px solid #000; } /* Changing the color of the arrow on hover */ #cssmenu > ul li>a:hover::after, #cssmenu > ul li:hover>a::after { border-left: 4px solid #fff; } #cssmenu > ul li>a:hover::before, #cssmenu > ul li:hover>a::before { border-left: 4px solid rgba(0, 0, 0, .3); } /* THE SUBMENUS */ #cssmenu > ul ul { position: absolute; left:95%; width:100%; top: -9999px; padding-left: 5px; opacity: 0; /* The fade effect, created using an opacity transition */ -webkit-transition: opacity .2s ease-in; -moz-transition: opacity .2s ease-in; -o-transition: opacity .2s ease-in; -ms-transition: opacity .2s ease-in; } /* Showing the submenu when the user is hovering the parent link */ #cssmenu > ul li:hover>ul { top: -2px; opacity: 1; }
请问有人有什么想法吗?
现在我在网站的页脚中有这样的东西:
$('html').click(function() { hideSubMenu(); }); $("#cssmenu").click(function(event){ event.stopPropagation(); });
当我点击子菜单时,我调用显示子菜单的 subMenu 函数:
<div id='cssmenu'> <ul> <li class='has-sub '><a href='#' onclick="subMenu('handleSubMenu1')"> ...