当鼠标位于子菜单上时,使用CSS保持顶级导航悬停效果

时间:2012-02-25 03:07:59

标签: css hover

当您将鼠标悬停在导航项上时,链接的颜色将变为白色,并且该链接的背景变为黑色。悬停状态显示:隐藏嵌套的块。当我将鼠标移动到嵌套(即子菜单)时,顶级导航栏上的悬停状态将返回到它的状态。当鼠标悬停在子菜单上时,如何使其保持不变?

换句话说,当我将链接“我们做什么”时,字体颜色更改为#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>

1 个答案:

答案 0 :(得分:7)

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

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