如何使用纯CSS技术实现一个可折叠树形菜单

html-css016

如何使用纯CSS技术实现一个可折叠树形菜单,第1张

利用伪类可以实现点击打开折叠菜单,但是再次点击收起貌似就没法实现了。跟楼下说的一样,利用:hover、:active 可以设置二级菜单的样式(如height、visibility、display)以达到展开的效果。

简单的话,可以这么做,用JS

function 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>

不太明白你描述的问题......点击里面的1或2或3,不是你设置了链接么?都跳转了,还有什么隐藏不隐藏?? 你是不是想说 点11显示11的子菜单,点12显示12的子菜单,其它(11和13)的隐藏?

如果是这个效果,你有两个错误:

1:你最大的那个无序列表<ul>少了 闭合标签,即</ul>,你自己检查一下.

2:在css里加.collapsed{display:none}

如果不是,就不清楚了..............................