いくつかのチュートリアルに従った後、CSS のみの垂直ドロップダウン メニューを構築することができました。ただし、幅と絶対オフセットはハードコーディングされており、内容に応じて自動的に調整することはできません。メニュー項目の実際の長さがわからない CMS に統合したいので、これらのハードコーディングは避けたいと考えています。
メニューが機能していることを示す JSFiddle をここに作成しました: http://jsfiddle.net/nhfHw/2/
トップレベルのアイテムは現在、幅100pxにハードコードされています(そのレベルで最も長いアイテムに応じて調整したいと思います)。それを削除しようとすると、次のサブレベルが画面全体に拡大されました。
#navigation
{
font-family: Helvetica, Arial, sans-serif;
font-size: 14px;
color: #707070;
line-height: 20px;
width: 100px; /* I wish to remove this */
margin-top: 30px;
}
サブレベルの x オフセットもハードコーディングされています。親の幅に合わせて調整してほしい。それらの幅も 200px にハードコーディングされています。
li:hover .sub-level
{
background: #D0D0D0;
display: block;
position: absolute;
left: 100px; /* I wish to remove this */
top: 0px;
}
li:hover .sub-level .sub-level
{
left: 210px; /* I wish to remove this */
top: 0px;
}
ul.sub-level li
{
border: none;
float:left;
width: 200px; /* I wish to remove this */
}
できればJavascriptは避けたいです。