我刚刚将我的网站变成了一个响应式布局,一路上我设法让我的下拉菜单无效。当鼠标悬停在'Drop-downs'上时,除非我使用position:relative,否则它们不会显示。他们在使用position之前工作:绝对 - 但似乎它们现在只适用于位置相对。使用相对时,它使用的宽度会混淆导航栏。
使用亲戚:http://d.pr/i/tp5R
使用绝对:http://d.pr/i/j7r1
我的子菜单的CSS
div.left_first_header ul.sub-menu {
width: 125px;
top: 14px;
z-index: 2;
height: 100%;
position: absolute;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
background: url(images/drop_down_bg.jpg);
padding-left: 15px;
padding-right: 15px;
background-repeat: repeat;
}
jQuery用于下拉功能
jQuery(document).ready(function ($) {
jQuery("ul.dropdown li").hover(function() {
$('ul:first',this).css('visibility', 'visible');
}, function() {
jQuery(this).removeClass("hover");
jQuery('ul:first',this).css('visibility', 'hidden');
});
});
我的网站
http://wpvault.com/kahlam/
考虑到凌晨4点,我可能犯了一个非常愚蠢的错误。
如果我错过了什么,我道歉。
答案 0 :(得分:2)
没有必要为此使用jQuery。尝试使用CSS :hover
<div class="left_first_header">
<ul class="dropdown">
Dropdown
<ul class="sub-menu">
<li>item</li>
</ul>
</ul>
</div>
CSS:
.left_first_header .sub-menu {
width: 125px;
top: 14px;
z-index: 2;
height: 100%;
position: absolute;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
background: url(images/drop_down_bg.jpg);
padding-left: 15px;
padding-right: 15px;
background-repeat: repeat;
display: none;
}
.left_first_header .dropdown:hover .sub-menu {
display: block;
}
CSS演示:http://jsfiddle.net/TZbfJ/
编辑:但是如果你仍然想使用jquery,试试这个:
.left_first_header .sub-menu {
width: 125px;
top: 14px;
z-index: 2;
height: 100%;
position: absolute;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
padding-left: 15px;
padding-right: 15px;
background-repeat: repeat;
display: none;
background-color: blue;
margin-top: 4px;
}
.dropdown {
background-color: red;
position: relative;
margin: 20px;
}
JS:
$(function(){
$(".dropdown").mouseenter(function(){
$(this).find(".sub-menu").show();
}).mouseleave(function(){
$(this).find(".sub-menu").hide();
});
})
jQuery demo:http://jsfiddle.net/63hkm/