※ Resultを0.25xにしてご覧ください。
See the Pen hoverで子メニューがでてくるサイドバー by 熊瀬川直也 (@momonoki1990) on CodePen.
-
li
の中に、親要素(a.parent
)と子要素(ul.child
)を並列させる。 - 子要素(
ul.child
)はdisplay:none
で消しておく - 親要素と子要素をまとめる
li
に対して:hover
をかけ、子要素(ul.child
)をdisplay: block
で表示させる。 - 親要素(
a.parent
)に対して:hover
をかけても、子要素(ul.child
)は親要素(a.parent
)に内包されていないので、子要素(ul.child
)にカーソルを合わせている時に、子要素(ul.child
)が消えてしまう。 - 親要素(
a.parent
)はdisplay: block
で広げておく - 子要素(
ul.child
)は、z-index: 9999;
→浮かせる、white-space: nowrap;
→折り返させない、box-shadow: 0 2px 8px rgba(77, 77, 77, 0.2);
→浮いているように見せる -
li
の高さはa
タグに対して上下padding
をかけて押し広げる(リンクの選択範囲がli
の高さいっぱいまで広がる) - 親要素と子要素をまとめる
li
にposition: relative
をかけて、子要素(ul.child
)やspan.chevron
にposition: absolute;
をかけることで、子要素(ul.child
)やspan.chevron
の位置を定める。 -
ul
はlist-style: none
をかけておく。