1

これはかなりイライラします。これを機能させるためにさまざまなトリックを試しました。

この CSS メニューの子要素がメイン メニューの上に表示されていますが、通常のドロップ ダウンが下に表示されない理由がわかりません。

どうやら私は新しいので画像を投稿することはできません。ごめん!私の説明を理解していただければ幸いです。親メニュー項目にカーソルを合わせると、ドロップダウンは実際には親の下からドロップダウンしません。代わりに、親と同じ高さで平行に開始されます。つまり、親のメニュー オプションが隠れて表示されなくなります。

    /*Primary nav*/

#menu {
    background: #0072BC;
    border-bottom: 3px solid #efefef;
    border-top: 3px solid #efefef;
    clear: both;
    float: left;
    margin-bottom: 1.5em;
    text-align: center;
    width: 100%;



}
#menu ul, .navbar ul {
    list-style-type: none;
    margin: 0 auto;
    padding: 0;
    width: 95%;
    max-width: 62.5em;


}
#menu ul li, .navbar ul li {
    display:block;
    float: left;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}
#menu ul li a, .navbar li a, .navbar li a:visited {
    display: block;
    float: left;
    margin: 0;
    padding: .75em;
}
#menu ul li a {
    color: #fff;
    font-size: .9em;
}
#menu ul li a:hover {
    background: #fff;
    color: #0072BC;
    text-decoration: none;
}
ul#menu {
    list-style: none outside none;
    margin: 0;
    padding: 0;
    position: relative;
}



ul#menu ul {
    display: none;
    left: 0;
    list-style: none outside none;
    margin: 0;
    padding: 0;
    position: relative;
    top: 100%;
    width: 10.000em;
}
ul#menu ul ul, ul#menu ul ul ul {
    left: 100%;
    top: 0;
}
ul#menu li {
    display: inline;
    float: left;
    margin: 0;
    position: relative;
}
ul#menu ul li {
    display: block;
    width: 100%;
}
ul#menu a {
    background: #efefef;
    color: #666666;
    display: block;
    float: left;
    height: 1%;
    padding: 6px;
    text-decoration: none;
}
#menu ul ul {
    display: none;
    left: -0.063em;
    list-style: none outside none;
    margin: 0;
    padding: 0;
    position: absolute;
    width: 270px;
    z-index: 100;
}
#menu ul ul li {
    display: block;
    width: 100%;
}
#menu ul ul li a {
}
#menu ul ul ul, #menu ul ul ul ul {
    left: 100%;
    top: -0.063em;
}
#menu ul a:hover, #menu ul li:hover a, #menu ul li.iehover a, #menu ul li.current-menu-item a, #menu ul li.current-menu-item a:visited {
    background: none repeat scroll 0 0 #efefef;
    color: #333;
}
#menu ul li:hover li a, #menu ul li.iehover li a, #menu ul li:hover li:hover li a, #menu ul li.iehover li.iehover li a, #menu ul li:hover li:hover li:hover li a, #menu ul li.iehover li.iehover li.iehover li a, #menu ul li:hover li:hover li:hover li:hover li a, #menu ul li.iehover li.iehover li.iehover li:hover li a {
    background: none repeat scroll 0 0 #efefef;
    color: #0072BC;
    float: none;
    font-size: .8em;
    padding: .5em;
    text-decoration: none;
    z-index: 100;


}
#menu ul li:hover li a:hover, #menu ul li:hover li:hover a, #menu ul li.iehover li a:hover, #menu ul li.iehover li.iehover a, #menu ul li:hover li:hover li a:hover, #menu ul li:hover li:hover li:hover a, #menu ul li.iehover li.iehover li a:hover, #menu ul li.iehover li.iehover li.iehover a, #menu ul li:hover li:hover li:hover li a:hover, #menu ul li:hover li:hover li:hover li:hover a, #menu ul li.iehover li.iehover li.iehover li a:hover, #menu ul li.iehover li.iehover li.iehover li.iehover a, #menu ul li:hover li:hover li:hover li:hover li a:hover, #menu ul li:hover li:hover li:hover li:hover li:hover a, #menu ul li.iehover li.iehover li.iehover li.iehover li a:hover, #menu ul li.iehover li.iehover li.iehover li.iehover li.iehover a {
    background: none repeat scroll 0 0 #efefef;
    color: #333;
}
#menu ul li:hover ul ul, #menu ul li:hover ul ul ul, #menu ul li:hover ul ul ul ul, #menu ul li.iehover ul ul, #menu ul li.iehover ul ul ul, #menu ul li.iehover ul ul ul ul {
    display: none;
}
#menu ul li:hover ul, #menu ul ul li:hover ul, #menu ul ul ul li:hover ul, #menu ul ul ul ul li:hover ul, #menu ul li.iehover ul, #menu ul ul li.iehover ul, #menu ul ul ul li.iehover ul, #menu ul ul ul ul li.iehover ul {
    display: block;
}
4

1 に答える 1

0

これは、サブメニューに がありposition:absolute;、デフォルトで になっているためtop:0です。この CSS を試してください:

#menu ul li {
    height:50px;
}

#menu ul ul {
    position: absolute;
    top:50px;
    left:0;
}

上部のメニュー項目に特定の高さを与えたことに注意してください。これにより、上部から正確な高さのサブメニューを配置できます。topまた、サブメニューにとleft宣言の両方を指定したことに注意してください。適切にposition:absolute;使用するには、X と Y の両方の配置が必要です。ブラウザには0両方のデフォルトがありますが、両方を明示的に宣言していない場合、Firefox のアニメーションは機能しません。

サイドノート

すべてを説明する時間はあまりありませんが、アイテムにクラスを与え、そのクラスをセレクターとして使用する必要があります。CSS は次のようになります。

.MainMenuItem {
    height:50px;
}

.SubMenu {
    position: absolute;
    top:50px;
    left:0;
}

考えるだけの食べ物です。

于 2013-06-10T21:50:43.717 に答える