0

特定のナビゲーションバーにカーソルを合わせるとドロップダウンするナビゲーションバーメニューを作成しようとしています。

ホバードロップダウンを機能させようとするまで、私のナビゲーションバーは見た目も機能も問題ありませんでした。具体的には、これが私が探しているものです。「仕事」にカーソルを合わせて、「ビデオ」と「写真」のドロップダウンメニューを取得します。私は何も間違って入れ子にしているとは思わないので、間違っているのは 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 を更新してみてください ( 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;

}
于 2013-10-09T01:02:23.977 に答える