如何向具有子菜单的唯一li项目显示箭头

时间:2015-12-07 21:54:29

标签: html css wordpress drop-down-menu

我正在尝试为嵌套菜单创建样式,这已经做了很多,但只剩下一个简单的步骤,我试图弄清楚如何修复。

我想向具有li的{​​{1}}项目显示箭头。 这看起来很容易,但随着嵌套菜单的样式化,它变得越来越复杂。

目前的问题是,当鼠标悬停在其中没有子菜单的列表项时,它会显示箭头。它不应该显示。

以下是Codepen: http://codepen.io/anon/pen/obgWvr

这是我的HTML代码,由Wordpress导航菜单生成:

sub-menu

这就是css:

<div style="height:105px; background:url(http://s2.postimg.org/tlyo9809h/bg_header_strip.png); border-bottom:7px solid #00a94e; position:relative;"> 
<div class="mainContainer menu-header-bottom-items" style="height:105px; position:relative;">

      <div class="menu-main-menu-container"><ul id="menu-main-menu" class="menu"><li id="menu-item-286" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-286"><a href="http://localhost/wp/sealant-solutions/">Solutions</a></li>
<li id="menu-item-285" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-has-children menu-item-285"><a href="http://localhost/wp/products/">Products</a>
<ul class="sub-menu">
    <li id="menu-item-312" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-has-children menu-item-312"><a href="http://localhost/wp/cups/">Cups</a>
    <ul class="sub-menu">
        <li id="menu-item-313" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-313"><a href="http://localhost/wp/pink-cup/">Pink Cup</a></li>
        <li id="menu-item-314" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-has-children menu-item-314"><a href="http://localhost/wp/black-cup/">Black Cup</a>
        <ul class="sub-menu">
            <li id="menu-item-318" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-318"><a href="http://localhost/wp/test-page/">Test Page</a></li>
        </ul>
</li>
    </ul>
</li>
    <li id="menu-item-315" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-has-children menu-item-315"><a href="http://localhost/wp/normal-plates/">Normal Plates</a>
    <ul class="sub-menu">
        <li id="menu-item-316" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-316"><a href="http://localhost/wp/resources/">Resources</a></li>
        <li id="menu-item-317" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-317"><a href="http://localhost/wp/support/">Support</a></li>
    </ul>
</li>
</ul>
</li>
<li id="menu-item-291" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-291"><a href="http://localhost/wp/about/">About</a></li>
</ul></div>      



<b1r clear="all">
</div>

2 个答案:

答案 0 :(得分:1)

只需将具有子项的子菜单项上的相同样式添加到父级菜单(包含子项)

li.menu-item-has-children,
li.menu-item-has-children:hover{
      background:url(http://s28.postimg.org/ilizrjzax/arrow_right.png) no-repeat 95% center;
}

我删除了以下内容,因为它覆盖了背景箭头图像(无论如何都应用于li)

.menu-header-bottom-items li a:hover{
  background:#00a94e;
}

我还将>选择器添加到以下行,因为它将箭头图像添加到具有子菜单的所有元素锚点(即没有子菜单的第三级菜单项)

ul.sub-menu li.menu-item-has-children > a:hover{
  background:#00a94e url(http://s28.postimg.org/ilizrjzax/arrow_right.png) no-repeat 95% center;
}

http://codepen.io/brn2drv99/pen/ZQYyPO

答案 1 :(得分:0)

您可以使用jQuery将类添加到具有submanu的li中。 写css给班级显示箭头

jQuery的:

jQuery('ul.sub-menu').parent('li').addClass("arrowStyle");

css:

.arrowStyle{
  // css for arrow
}