如果只用css的话就这么写吧
.level2{display:none
}
.level1 > li:hover > .level2{
display:block
}
html里大概这样的结构
<ul class="level1"><li>l1
<ul class="level2">
<li>l2</li>
<li>l2</li>
<li>l2</li>
</ul>
</li>
<li>l1
<ul class="level2">
<li>l2</li>
<li>l2</li>
<li>l2</li>
</ul>
</li>
<li>l1
<ul class="level2">
<li>l2</li>
<li>l2</li>
<li>l2</li>
</ul>
</li>
<li>l1
<ul class="level2">
<li>l2</li>
<li>l2</li>
<li>l2</li>
</ul>
</li>
</ul>
利用伪类可以实现点击打开折叠菜单,但是再次点击收起貌似就没法实现了。跟楼下说的一样,利用:hover、:active 可以设置二级菜单的样式(如height、visibility、display)以达到展开的效果。简单的话,可以这么做,用JSfunction opencat(cat){
if(document.getElementById(cat).style.display=="none"){
document.getElementById(cat).style.display=""
}
else {
document.getElementById(cat).style.display="none"
}
}
然后在要收缩菜单的按钮或链接上这么做 比如超连接
<a id="menu1" href="#" style="display:block" onclick="opencat('list1')">
下面紧跟着的是展开后的目录内容,可以是Table,也可以是DIV
<table id="list1">
<tr><td>111111</td></tr>
<tr><td>222222</td></tr>
<tr><td>33333</td></tr>
<tr><td>4444444</td></tr>
<tr><td>5555555</td></tr>
</table>