【问题标题】:css top-menu not staying in hovered style when cursor moved to sub-menus当光标移动到子菜单时,CSS顶部菜单不会保持悬停样式
【发布时间】:2014-09-11 00:37:43
【问题描述】:

我有一个顶部菜单栏,当鼠标悬停在每个菜单项上时,它会变成紫色。

其中一个菜单还有一个包含更多项目的下拉列表。当我通过这些子菜单向下移动鼠标光标时,顶部菜单会恢复到原始样式。即使我将鼠标悬停在子菜单项上,我也希望它保持紫色。网站是here,如果您将鼠标悬停在“关于”下的子菜单上,则会显示问题。

我已经搜索了一些类似的 stackoverflow 答案。比如这个问题和previous answer here。我尝试对此进行更改

#topnav li a:hover {} 

到

#topnav li hover:a {}

但无论是这个建议的更改还是原来的更改都不会使顶部菜单保持紫色。完整代码如下:

#topnav {
    clear: both;
    background: url(nav-bg-orange.png) no-repeat;
    height: 87px;
    width: 962px;
    padding: 6px 63px 6px;
}

#topnav ul {
    list-style: none;
    float: left;
}

#topnav ul li {
    list-style: none;
    float: left;
    padding: 3px 0 0 0;
    border-left: 1px dashed #f38739;
}

#topnav ul li:last-child {
     border-right: 1px dashed #f38739;
 }

#topnav ul li a {
    float: left;
    display: block;
    color: #fff;
    font-size: 14px;
    text-decoration: none;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    padding: 15px 20px 15px 20px;
    border: 0;
    outline: 0;
    line-height: 1;
    list-style-type: none;
    text-transform: uppercase;
}

#topnav li#active a,
#topnav li:hover a {
    color: #fff;
    background: #745b7c;
    display:block;
    border-radius: 5px 5px 0 0;
}


/****************************** flyout menus ******************************/

#wsite-menus .wsite-menu li a {
    font-family: Tahoma, Geneva, sans-serif;
    padding: 11px;
    color: #fff;
    background: #745b7c;
    border: 0;
    border-bottom: 1px dashed #9e89a4;
}

#wsite-menus .wsite-menu li:hover a {
    color: #fff;
    background: #8c7395;
}

【问题讨论】:

  • 你也可以分享html吗..?
  • 你试过#topnav ul:hover吗?
  • 任何 jsfiddle 可用?
  • 没有这样的:#topnav li hover:a { 你必须这样写:#topnav li a:hover {} 然后尝试
  • @simpe #topnav ul:hover。只是使整个顶部导航行被选中。

标签: css menu hover submenu


【解决方案1】:

我请朋友帮我看看这个。为了修复菜单,我需要更改当前为子菜单设置动画的 javascript。不幸的是,因为我使用的是基于 Weebly 的模板,所以我无法访问此代码来更改它。所以看起来是个死胡同。

【讨论】:

    【解决方案2】:

    你可能想尝试把你的

    #wsite-menus
    

    菜单嵌套在具有类的元素中

    .wsite-nav-3
    

    在这种情况下,它应该可以正常工作。

    <li id="pg524622535697207710" class="wsite-nav-3" style="position: relative;"><a href="/about.html" style="position: relative;">About </a><div id="wsite-menus"><div class="wsite-menu-wrap" style="position: absolute; left: -1118px; display: block; top: 47px;"><ul class="wsite-menu" style="display: block;"><li id="wsite-nav-977240454937878932" style="position: relative;"><a href="/hatha-yoga.html" style="position: relative;"><span class="wsite-menu-title">Hatha Yoga</span></a></li><li id="wsite-nav-788960178245244400" style="position: relative;"><a href="/yin-yoga.html" style="position: relative;"><span class="wsite-menu-title">Yin Yoga</span></a></li><li id="wsite-nav-226130023988115977" style="position: relative;"><a href="/yoga-for-men.html" style="position: relative;"><span class="wsite-menu-title">Yoga for Men</span></a></li><li id="wsite-nav-104813911397431638" style="position: relative;"><a href="/prenatel-yoga.html" style="position: relative;"><span class="wsite-menu-title">Prenatel Yoga</span></a></li><li id="wsite-nav-176000207649938754" style="position: relative;"><a href="/private-classes.html" style="position: relative;"><span class="wsite-menu-title">Private Classes</span></a></li><li id="wsite-nav-558168910269966978" style="position: relative;"><a href="/yoga-for-business.html" style="position: relative;"><span class="wsite-menu-title">Yoga for Business</span></a></li></ul></div></div> </li>
    

    我自己没有检查过,但很有可能没问题。

    【讨论】:

      【解决方案3】:

      对不起。你是 CSS 新手吗? 您所要做的就是使用 UL:HOVER。那是因为您要从 LI 中移除鼠标。所以使用 UL 作为触发器。即使您更改 LI,UL 也不会关闭。 :)

      【讨论】:

      • 是的,新的!恐怕使用 ul:Hover 会使所有顶部导航菜单都被选中。刚试了一下。我正在尝试使特定子菜单的顶部菜单保持选中状态,即使鼠标移动到这些较低级别的 LI。
      猜你喜欢
      • 1970-01-01
      • 2014-03-29
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 2013-06-21
      相关资源
      最近更新 更多