很高兴出现在Stack Overflow上:)
我最近为我的WordPress菜单实现了一些Jquery淡入/淡出代码。我实际上在这个资源上使用了here找到的代码。显然,它似乎是一个非常常用的Jquery代码。
我能够将它整合到我的WordPress菜单中。主要导航上的一切都很好用。但是,子菜单采用了我不想要的主导航的相同高度和Jquery效果。我希望子菜单更薄,只需更改背景颜色。
我的问题是如何在使用这个优秀的jquery脚本时让主导航和子导航的样式彼此独立。我已经粘贴了相关的css代码,并希望有人能够提供一些见解。它基于标准的wordpress菜单css,我希望它是非常不言自明的。
#access {
margin:0;
padding:0;
list-style:none;
line-height:60px;
}
#access ul {
font-size: 16px;
font-family: 'swis721_ltcn_btlight';
text-transform:uppercase;
list-style: none;
margin: 0 0 0 -0.8125em;
padding-left: 0;
display:inline-block;
text-align: center;
}
#access li {
float:left;
background:url(images/default.jpg) no-repeat center center; /
width:150px;
height: 50px;
position:relative;
}
#access li a {
z-index:20;
display:block;
position:relative;
color:#777;
border-right: 1px dotted #cccccc;
}
#access li .hover {
background:url(images/over.jpg) no-repeat center center;
position:absolute;
width:150px;
height:50px;
left:0;
top:0;
z-index:0;
display:none;
}
#access ul ul {
height: 17px !important;
-moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2);
-webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2);
box-shadow: 0 3px 3px rgba(0,0,0,0.2);
display: none;
float: left;
margin: 0;
position: absolute;
top: 50px;
left: 0;
width: 150px;
z-index: 99999;
}
#access ul ul a {
background:#ccc;
border-top: 1px dotted #ffffff;
border-bottom: 1px dotted #ffffff;
color: #FFF;
font-size: 12px;
font-weight: normal;
line-height: 1.1em;
text-align: left;
padding: 5px 10px;
width: 130px;
height: 17px;
}
#access ul ul :hover > a {
height:17px !important;
}
基本上,当我尝试更改“#access ul ul a”或“#access ul ul:hover> a”中的子菜单样式时,主导航的高度和悬停效果会延续。
我已经包含了一个问题示例的链接。如果将鼠标悬停在“事件和服务”上,您将看到子菜单问题。
http://streetsmartetiquette.com/wordpress/about/
下面还添加了Jquery代码:
jQuery(document).ready(function($) {
//Append a div with hover class to all the LI
$('#menu-navmenu li').append('<div class="hover"><\/div>');
$('#menu-navmenu li').hover(
//Mouseover, fadeIn the hidden hover class
function() {
$(this).children('div').stop(true, true).fadeIn('1000');
},
//Mouseout, fadeOut the hover class
function() {
$(this).children('div').stop(true, true).fadeOut('1000');
}).click (function () {
//Add selected class if user clicked on it
$(this).addClass('selected');
});
});
谢谢大家的帮助!
答案 0 :(得分:0)
我没有太多时间,但我快速地把它扔了一遍:
HTML
<nav id="access">
<div class="menu-navmenu-container">
<ul>
<li><a href="/">Link 1</a></li>
<li>
<a href="/">Link 2</a>
<ul>
<li><a href="/">Sub Link 1</a></li>
<li><a href="/">Sub Link 2</a></li>
</ul>
</li>
</ul>
</div>
</nav>
CSS
#access {}
.menu-navmenu-container { width : 960px; }
#access ul {
list-style : none;
}
#access li {
float : left;
position : relative;
text-align : center;
width : 150px;
}
#access li a {
border-left : 1px solid #ccc;
display : block;
line-height : 50px;
}
#access li:last-child a { border-right : 1px solid #ccc; }
#access li a:hover {
background-image : url("http://streetsmartetiquette.com/wordpress/wp-content/themes/clean/images/over.jpg");
}
#access ul ul {
border-top : 1px solid #ccc;
left : 0;
padding : 0;
position : absolute;
}
#access ul ul a {
border-bottom : 1px solid #ccc;
line-height : normal;
padding : 5px 0;
}
#access ul ul a:hover {
background-color : blue;
background-image : none;
color : white;
}
这是一个link to the fiddle。这是免费的JavaScript,但如果需要,你可以实现你的JavaScript。
答案 1 :(得分:0)
嗨我认为你的问题出现在你的CSS中你没有将你菜单中的第一个ul li和你子菜单中的ul li分开
使用
创建新的CSS#access .sub-menu li {
height: 18px; // the height you need for the submenu or anything else you ant to change
}
和
#access .sub-menu li .hover {
height: 18px;// the height you need for the hover effect from the jquery
}