【问题标题】:Use CSS to keep the top-level navigation hover effect on when the mouse is over the sub-menu当鼠标悬停在子菜单上时,使用 CSS 保持顶级导航悬停效果
【发布时间】:2012-03-15 11:57:00
【问题描述】:

当您将鼠标悬停在导航项上时,链接的颜色变为白色,该链接的背景变为黑色。悬停状态在隐藏的嵌套上执行 display:block 。当我将鼠标移到嵌套(即子菜单)上时,顶级导航上的悬停状态会返回到原来的状态。当我的鼠标悬停在子菜单上时,如何让它持续存在?

换句话说,当我将链接“我们做什么”悬停时,字体颜色变为#fff,背景变为#111,并且 ul.sub 菜单显示为相同的黑色背景和白色文本。当我的鼠标悬停在“我们做什么”上时,这一切都会出现,但是一旦它移动到子菜单,“我们做什么”的背景就会恢复到原来的颜色,字体颜色会变回黑色。同时,我的子菜单仍以正确的格式打开。当我将鼠标悬停移开时,如何让“状态”持续存在?

这是一个 jsfiddle:http://jsfiddle.net/U77re/

nav ul#menu-top-nav { position: absolute; top: 35px; left: 113px; padding: 16px 30px 17px 20px; width: 797px; background: #F0F1F4;}
nav ul#menu-top-nav li { position: relative; float: left; margin: 0 40px 0 0; }
nav ul#menu-top-nav li a:hover { color: #fff; background: #111;  }
nav ul#menu-top-nav li#menu-item-1186 { margin-right: 0; }
nav ul#menu-top-nav ul.sub-menu { display: none; }
nav ul#menu-top-nav ul.sub-menu li a { margin: 0; }

nav ul#menu-top-nav li:hover ul.sub-menu { display: block; position: absolute; left:0; top: 30px; width: 250px; padding: 20px;
                                    z-index: 1; background: #111; }

nav ul#menu-top-nav  ul.sub-menu p { margin: 0 0 25px 0; color: #fff; line-height: 1.4; font-weight: bold; }
nav ul#menu-top-nav  ul.sub-menu li { width: 250px; margin: 0 0 20px 20px; color: #fff; list-style-position: inside; list-style-type: disc;  }
nav ul#menu-top-nav  ul.sub-menu li a { color: #fff;  }

<nav role="navigation">
    <ul class="menu" id="menu-top-nav">
    <li id="menu-item-1596"><a href="http://localhost:8888/what-we-do/">What we do</a>
        <ul class="sub-menu">
            <p>Explore what we do and the people behind it</p>
            <li id="menu-item-1600"><a href="/what-we-do/about/">About IFSW</a></li>
            <li id="menu-item-1604"><a href="/what-we-do/partners/">Partners</a></li>
            <li id="menu-item-1601"><a href="/what-we-do/contact/">Contact</a></li>
        </ul>
    </li>
</ul>
</nav>

【问题讨论】:

  • 我编辑了你的问题,为你添加了一个 jsfiddle。

标签: css hover


【解决方案1】:

将悬停事件从 a 锚元素切换到 li 元素,如下所示:

nav ul#menu-top-nav li:hover a { color: #fff; background: #111;  }

【讨论】:

  • 谢谢,这很有效,当我看到它时非常明显。我想我迷失在等级制度中。
猜你喜欢
  • 1970-01-01
  • 2018-06-29
  • 2013-11-26
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
相关资源
最近更新 更多