css navbar hover drop down

时间:2013-10-09 00:54:39

标签: html css hover

我希望在将鼠标悬停在特定导航栏li上时制作导航栏菜单。

我的导航栏看起来很好,直到我试图让悬停下拉工作。具体来说,这就是我要找的东西:将鼠标悬停在" work"并获得"视频"的下拉菜单和"摄影"。我不认为我嵌套了什么错误,所以我认为这是错误的CSS。我尝试了一些不同的建议,但没有任何效果。

旁注:我最近给了导航项目"菜单"的ID。我有它,以便导航上的当前页面将是一个更暗的颜色,当当前页面导航被悬停时,它将保持相同的颜色。这在我改为id到" menu"之前有效。 (之前是#34; nav ul li")。现在当你悬停时,它会改变颜色。是什么让这种变化发生了?

* {
padding: 0;
margin: 0;
}
ul, ol, dl {
padding: 0;
margin: 0;
}
ul#menu {
list-style: none;
text-align: center;
background-color: #bac9a9;
padding-top: 5px;
padding-bottom: 5px;
overflow: hidden;
}
ul#menu:after {
content:"";
background-image: url("../images/navbar-shadow-green.jpg");
height: 8px;
width: 100%;
display: block;
position: absolute;
left: 0;
margin-top: 4px;
}
ul#menu li {
display: inline;
}
ul#menu li a {
text-decoration: none;
color: #f3ffcf;
font-size: 22px;
padding: 10px 25px;
margin: 0 -2px;
}
ul#menu li a:hover {
background-color: #b2c1a2;
}
a.selected-page, a.selected-page:hover {
background-color: #a6b396;
}
li#sub ul {
display: none;
}
ul#menu li#sub:hover ul {
display: block;
}

<nav>
<ul id="menu">
    <li><a href="index.html" class="selected-page">about</a>
    </li>
    <li id="sub"><a href="#">work</a>
    </li>
    <ul>
        <li><a href="#">videos</a>
        </li>
        <li><a href="#">photography</a>
        </li>
    </ul>
    <li><a href="#">services</a>
    </li>
    <li><a href="#">contact</a>
    </li>
</ul>
</nav>

JSFiddle

1 个答案:

答案 0 :(得分:0)

我认为你的嵌套错了。您希望滚动工作列表项时显示的列表是该列表项的子项。尝试更新您的HTML / CSS,如下所示(请参阅fiddle):

<强> HTML:

<nav>
    <ul id="menu">
        <li><a href="index.html" class="selected-page">about</a>
        </li>
        <li id="sub">
            <a href="#">work</a>
            <ul>
                <li><a href="#">videos</a></li>
                <li><a href="#">photography</a></li>
            </ul>
        </li>
        <li><a href="#">services</a>
        </li>
        <li><a href="#">contact</a>
        </li>
    </ul>
</nav>

CSS:

* {
    padding: 0;
    margin: 0;
}
ul, ol, dl {
    padding: 0;
    margin: 0;
}
ul#menu {
    list-style: none;
    text-align: center;
    background-color: #bac9a9;
    padding-top: 5px;
    padding-bottom: 5px;
    overflow: hidden;
}
ul#menu:after {
    content:"";
    background-image: url("../images/navbar-shadow-green.jpg");
    height: 8px;
    width: 100%;
    display: block;
    position: absolute;
    left: 0;
    margin-top: 4px;
}
ul#menu li {
    display: inline;
}
ul#menu li a {
    text-decoration: none;
    color: #f3ffcf;
    font-size: 22px;
    padding: 10px 25px;
    margin: 0 -2px;
}
ul#menu li a:hover {
    background-color: #b2c1a2;
}
a.selected-page, a.selected-page:hover {
    background-color: #a6b396;
}
li#sub ul {
    display: none;
    position: absolute;
    top: 35px; left: 115px;
    background-color: #b2c1a2;
}
li#sub ul li {
    display: block;
}
ul#menu li#sub:hover ul {
    display: block;

}