2017-03-14 12 views
0

は非常に悪いです:ピュアCSS応答マルチレベルのメニュー

HTML以外にも、 CSS側では、私は

* third level */ 

#nav li li li{ 
    background-color: #cc470d; 
    display: none; 
    position: absolute; 
    top: 100%; 
} 
#nav li li:hover li { 
    display: block; 
    left: 2px; 
    top:0px; 
    right: 0; 
} 
#nav li:not(:first-child):hover ul li ul li { 
    left: 240px; 
    top:-50px; 
} 
#nav li ul li ul a { 
    font-size: 1.25em; /* 20 */ 
    border-top: 1px solid #e15a1f; 
    padding: 0.75em; /* 15 (20) */ 
} 

#nav li ul li ul li a:hover, #nav li ul li ul:not(:hover) li.active a { 
    background-color: #e15a1f; 
} 

を追加しましたが、それだけでは十分ではありませんし、@mediaバージョンも処理しなければなりません。

は、あなたがそれらを正しく配置する余白を調整、その後、ドロップダウンに一定の幅を適用することができ

答えて

1

を追加するために必要なものを提案してくださいすることができます。

これに第3レベル #nav li li liのためのあなたのコードを変更し

/* third level */ 

#nav li li li { 
    background-color: #cc470d; 
    display: none; 
    position: absolute; 
    top: 100%; 
    width: 240px; /* will also set width for child dropdown */ 
    margin-top: -1px; 
    margin-left: 2px; 
} 

を第四のレベルのためにこれを追加します。

/* fourth level */ 

#nav li li li li { 
    margin-left: 1px; 
} 
+0

こんにちは!お返事ありがとうございます、私はあなたの提案を実装し、いくつかの他の変更と状況が改善されました。[こちらをご覧ください](http://codepen.io/anon/pen/xqLWOG)しかしまだ完璧ではありません。 特に、開かれた第3レベルは、第2レベルの底に大きなオレンジ色の正方形が残っているので、避ける方法はわかりません。助言がありますか? ありがとう! – Joe

+0

もちろん、 '#nav li li ul {height:0; } 'をCSSに送信します。 – Ross

+0

それは素晴らしいです!、私はあなたの最後の提案をmin-width 1000pxにのみ適用するためにいくつかのマイナーな変更とルールを追加しました。誰にでも が興味があります[私の最終版](http://codepen.io/anon/pen/xqLWOG)。 – Joe