【问题标题】:css navbar hover drop downCSS导航栏悬停下拉
【发布时间】:2013-10-09 00:54:38
【问题描述】:

我希望制作一个导航栏菜单,当鼠标悬停在特定的导航栏 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

【问题讨论】:

    标签: html css hover


    【解决方案1】:

    我认为你的嵌套错误。您希望滚动工作列表项时显示的列表成为该列表项的子项。尝试按如下方式更新您的 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;
    
    }
    

    【讨论】:

    • 这绝对有帮助。然而,悬停仍然一团糟。我怎样才能让“视频”和“摄影”垂直堆叠并显示在“作品”下方?如果这很明显,请原谅我,我对此很陌生。
    猜你喜欢
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2020-02-07
    • 2017-09-02
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多