訣竅是:hover
僞類。
<ul class="menu">
<li>
<a href="...">Menu Item 1</a>
<ul class="submenu">
<li><a href="...">Submenu 1</a></li>
<li><a href="...">Submenu 2</a></li>
</ul>
</li>
<li>
<a href="...">Menu Item 2</a>
<ul class="submenu">
<li><a href="...">Submenu 3</a></li>
<li><a href="...">Submenu 4</a></li>
</ul>
</li>
</ul>
好嗎?因此,您的整個子菜單必須進入與其對應的主菜單項的<li>
。然後爲CSS:
.submenu { display: none; }
.menu>li:hover>.submenu { display: block; }
做一些樣式,並完成工作。
編輯:對於另一層菜單,它非常簡單。使用這個CSS:
.menu li>ul { display: none; }
.menu li:hover>ul { display: block; }
請注意,我把它換成.menu>li:hover
與.menu li:hover
。這會告訴瀏覽器在主菜單下面找到所有li
元素(不只是直接後代),並在懸停時顯示其子菜單。我也擺脫了使用子菜單類,因爲如果您將CSS放在後代上,它並不是真的需要。這可以讓你添加任意數量的水平。
我不認爲這是完全可能的。這就是爲什麼像着名的suckerfish這樣的CSS下拉菜單都有JavaScript助手的原因。 – 2011-02-02 11:02:21
@Pekka它是可能的,它可以在大多數瀏覽器(最近5年左右的所有瀏覽器以及一些較舊的瀏覽器)上運行。請參閱下面的解決方案,瞭解它的工作原理。 – 2011-02-02 11:52:23