私は垂直メニューを作成しようとしており、複数列のサブメニューを作成する必要があります。私のコードは次のようになります:float nested li
<style type="text/css" media="screen">
#nav {
width: 100px;
}
#nav li {
position: relative;
background-color: red;
}
#nav li:hover .subnav {
display: block;
}
.subnav {
position: absolute;
top: 0;
left: 100px;
display: none;
}
.subnav > li {
float: left;
}
</style>
<ul id="nav">
<li>
<a href="#">Link 1</a>
<ul class="subnav">
<li>
<ul>
<li>Col 1.1</li>
<li>Col 1.2</li>
</ul>
</li>
<li>
<ul>
<li>Col 2.1</li>
<li>Col 2.2</li>
</ul>
</li>
<li>
<ul>
<li>Col 3.1</li>
<li>Col 3.2</li>
</ul>
</li>
</ul>
</li>
</ul>
私の質問は、なぜ.subnav> liは左に浮かないのですか?サブメニュー項目の長さがわからないので、width属性を設定したくありません。
あなたは正しいですが、#navの幅を削除すると、その幅は親の幅(つまり身体の幅)と同じになることを意味します。しかし、私のサイトでは、#navは幅100pxのダイビングの中にあります。この#navをdivの外に置くと、レイアウト全体が混乱することになります。 –
次に、サブナビの幅を設定する方法はありません。利用可能な最大幅(ボディの幅が固定されていることを前提とする)に設定し、透明な背景を与えるだけであれば、いくつのサブナビゲーション項目があるかは関係ありません。 – Jacob
あなたの答えをありがとう –