0

我正在寻找一个导航栏菜单,当将鼠标悬停在特定的导航栏 li 上时会下拉菜单。

我的导航栏看起来和工作正常,直到我试图让悬停下拉菜单工作。具体来说,这就是我正在寻找的内容:将鼠标悬停在“工作”上并获得“视频”和“摄影”的下拉菜单。我不认为我嵌套了任何错误,所以我认为这是错误的 CSS。我尝试了一些不同的建议,但没有任何效果。

旁注:我最近为导航项指定了“菜单”的 ID。我有它,以便导航上的当前页面将是某种较暗的颜色,当当前页面导航悬停时,它会保持相同的颜色。这在我将 id 更改为“menu”之前有效(在它是“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

4

1 回答 1

0

我认为你有嵌套错误。您希望滚动工作列表项时显示的列表成为该列表项的子项。尝试如下更新您的 HTML / CSS(参见小提琴):

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;

}
于 2013-10-09T01:02:23.977 回答