ul> li> ulの組み合わせを使ってメニューを作成する必要があります。各ulは最大高さを持ち、オーバーフローした場合はスクロールする必要があります。 Li上にカーソルを置くと、内部に別のulタグがある場合は、別のメニューが開きます。言い換えれば3レベルのオーバーフロー方法メニューul> li> ul> li
、後続の各メニューは、必要であれば、それは自身のスクロールバーの持っている、それは別のメニューを持っている場合/非表示を表示するために、独立していなければならないが(この部分は、JSコードから動作します)
この例では、怒鳴る私はホバリングメカニズムは無視されますが、赤い背景には次のメニューレベルを表示するフローが表示されます。
問題:第3レベルを絶対にすることはできません。第2レベルの下でラップします。また、私はレベル2とレベル3のために2つのスクロールを持つことができるので、私は第2レベルのオーバーフローができません。 ありがとうございました。
HTML:あなたはこれに似た何かをしたい場合
ul.l1--menu,
ul.l2--menu,
ul.l3--menu {
\t position: relative;
\t display: block;
\t padding: 0;
\t float: left;
\t z-index: 1;
\t width: 100px;
border: 1px solid black;
height: 100px;
}
.menu {
position: absolute;
}
li {
\t list-style: none;
\t display: block;
}
li:hover {
background: red;
}
ul.l1--menu {
\t width: 300px;
\t z-index: 1;
}
ul.l2--menu {
\t margin : 0;
\t left: 100px;
\t width: 200px;
\t z-index: 2;
\t position: absolute;
\t top: 0;
max-height:100px;
overflow-y: scroll;
overflow-x: hidden;
}
ul.l3--menu {
\t margin : 0;
\t left: 100px;
\t width: 100px;
\t z-index: 3;
\t position: absolute;
\t top: 0;
}
<div class="menu">
<ul class=" l1--menu">
<li>
<a href="#">1</a>
</li>
<li>
<a href="#">2</a>
<ul class=" l2--menu">
<li>
<a href="#">a</a>
</li>
<li>
<a href="#">b</a>
</li>
<li>
<a href="#">c</a>
</li>
<li>
<a href="#">d</a>
<ul class=" l3--menu">
<li>
<a href="#">sub d</a>
</li>
</ul>
</li>
<li>
<a href="#">e</a>
<ul class=" l3--menu">
<li>
<a href="#">sub e</a>
</li>
</ul>
</li>
<li>
<a href="#">e</a>
</li>
<li>
<a href="#">f</a>
</li>
<li>
<a href="#">g</a>
</li>
<li>
<a href="#">h</a>
</li>
</ul>
</li>
</ul>
</div>
ありがとうございます。これは素晴らしいです –
偉大な:)私は不透明部分を逃した。 –