一直很想知道那种无限级CSS树形菜单的写法。今天终于抓到了。我是很喜欢。这样的应用可以到各种地方。包括大小分类,文章整理,网址外联,友情链接。无数哈。最主要的是可以很简洁的表达。也可以替换了本来blog中的内容。喜欢喜欢。我还没有整理,也没有应用下。先发上来了。
-
CNL Tree Menu Ver1.02
Author:CNLei,枫岩
MySite:www.cnlei.net, cnlei.iecn.net
E-Mail:cnlei.y.l#gmail.com (请将#换成@)
Intro:
"CNL Tree Menu"为无限级树形,兼容以下版本的浏览器:IE5.0+, FF1.06+, Opera8.5+ ……
HTML,CSS,JavaScript代码相互分离(即数据,风格,脚本三者分离),可应用于多种场合,易于维护修改;更换树形图标,只需要修改CSS文件.
通过W3C校验(XHtml1-Strict,CSS1.0).
最后更新:2006-2-13
下载地址:点击下载
预览去作者的网站看吧,http://cnlei.iecn.net/mycode/CNLTreeMenu/Ver1.0.2/index.html#
以下为代码:
---点开我查看---
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml
<html xmlns="http://www.w3.org/1999/xht lang="zh-cn">
<head>
<title>CNL Tree Menu Ver1.02 - 无限级树形菜单 Written by CNLei, 枫岩 </title>
<meta http-equiv="content-type" content="text/html;charset=gb2312" />
<meta name="generator" content="editplus" />
<meta name="author" content="CNLei,枫岩,www.cnlei.net" />
<meta name="keywords" content="CSS Menu,树形菜单,CNLei" />
<meta name="description" content="" />
<!--
**************************************
HTML Code for CNLTreeMenu
Version: Ver 1.02
Author : CNLei, 枫岩
E-Mail : CNLei.Y.L@gmail.com
MySite : http://www.cnlei.net
Passed : XHtml 1.0, CSS 2.0, IE5.0+, FF1.0+, Opera8.5+
Update : 2006-2-12
**************************************
-->
<link type="text/css" rel="stylesheet" href="http://cnlei.iecn.net/myco />
<script type="text/javascript" src="http://cnlei.iecn.net/myco
</head>
<body>
<p>实例演示:</p>
<dl>
<dt>CNL Tree Menu <small>Ver1.02</small></dt>
<dd><strong>Author</strong>:CNLei,枫岩</dd>
<dd><strong>MySite</strong>:<a href="http://www.cnlei.net" style="color:#00f;">www.cnlei.net</a><
<dd><strong>E-Mail</strong>:cnlei.y.l<span style="color:#00f">#</span>gail.com (请将<span style="color:#00f">#</span>换成<span style="color:#00f">@</span>)</dd>
<dd><strong>Intro</strong>:
<ol>
<li>"CNL Tree Menu"为无限级树形,兼容以下版本的浏览器:IE5.0+, FF1.06+, Opera8.5+ ……</li>
<li>HTML,CSS,JavaScript代码相互分离(即数据,风格,脚本三者分离),可应用于多种场合,易于维护修改;更换树形图标,只需要修改CSS文件.</li>
<li>通过W3C校验(XHtml1-Strict,CSS1.0). </li>
<li>最后更新:2006-2-13 </li>
</ol>
</dd>
</dl>
<!--CNLTreeMenu Start:-->
<div class="CNLTreeMenu" id="CNLTreeMenu1">
<h4>CNL Tree Menu1</h4>
<p><a id="AllOpen_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(0);Hd(this);Sw('AllClose_1');">全部展开</a><a id="AllClose_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(1);Hd(this);Sw('AllOpen_1');" style="display:none;">全部折叠</a></p>
<ul>
<li class="Opened"><a href="http://www.iecn.net"&
<ul>
<li><a href="#1">技术区</a>
<ul>
<li><a href="#">网页技术</a>
<ul>
<li class="Child"><a href="#">JavaScript</a></li><!--Child Node-->
<li class="Child"><a href="#">HTML/XHTML/CSS</a></li>
<li class="Child"><a href="#">Ajax</a></li>
<li class="Child"><a href="#">网页制作工具</a></li>
<li class="Child"><a href="#">设计/图形</a></li>
<li class="Child"><a href="#">Flash/多媒体</a></li>
<li class="Child"><a href="#">VML/Web3D</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">Web编程</a>
<ul>
<li class="Child"><a href="#">Java</a></li><!--Child Node-->
<li class="Child"><a href="#">.Net</a></li>
<li class="Child"><a href="#">ASP/VBScript</a></li>
<li class="Child"><a href="#">PHP</a></li>
<li class="Child"><a href="#">Perl/Python</a></li>
<li class="Child"><a href="#">Web综合/开源</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">数据库</a>
<ul>
<li class="Child"><a href="#">Access/SQLServer</a></li><!--Child Node-->
<li class="Child"><a href="#">MySQL/PostgreSQL</a></li>
<li class="Child"><a href="#">Oracle/DB2/Sybase</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">服务器</a>
<ul>
<li class="Child"><a href="#">Windows/IIS</a></li><!--Child Node-->
<li class="Child"><a href="#">Unix/Linux/Apache</a></li>
<li class="Child"><a href="#">应用服务器</a></li>
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
</ul></li><!--Sub Node 1 -->
</ul>
</div><!-- CNLTreeMenu -->
<!--CNLTreeMenu1 End!-->
<!--CNLTreeMenu2 Start:-->
<div class="CNLTreeMenu" id="CNLTreeMenu2">
<h4>CNL Tree Menu2</h4>
<p><a id="AllOpen_2" href="#" onclick="MyCNLTreeMenu2.SetNodes(0);Hd(this);Sw('AllClose_2');">全部展开</a><a id="AllClose_2" href="#" onclick="MyCNLTreeMenu2.SetNodes(1);Hd(this);Sw('AllOpen_2');" style="display:none;">全部折叠</a></p>
<ul>
<li class="Opened"><a href="http://www.iecn.net"&
<ul>
<li><a href="#1">技术区</a>
<ul>
<li><a href="#">网页技术</a>
<ul>
<li class="Child"><a href="#">JavaScript</a></li><!--Child Node-->
<li class="Child"><a href="#">HTML/XHTML/CSS</a></li>
<li class="Child"><a href="#">Ajax</a></li>
<li class="Child"><a href="#">网页制作工具</a></li>
<li class="Child"><a href="#">设计/图形</a></li>
<li class="Child"><a href="#">Flash/多媒体</a></li>
<li class="Child"><a href="#">VML/Web3D</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">Web编程</a>
<ul>
<li class="Child"><a href="#">Java</a></li><!--Child Node-->
<li class="Child"><a href="#">.Net</a></li>
<li class="Child"><a href="#">ASP/VBScript</a></li>
<li class="Child"><a href="#">PHP</a></li>
<li class="Child"><a href="#">Perl/Python</a></li>
<li class="Child"><a href="#">Web综合/开源</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">数据库</a>
<ul>
<li class="Child"><a href="#">Access/SQLServer</a></li><!--Child Node-->
<li class="Child"><a href="#">MySQL/PostgreSQL</a></li>
<li class="Child"><a href="#">Oracle/DB2/Sybase</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">服务器</a>
<ul>
<li class="Child"><a href="#">Windows/IIS</a></li><!--Child Node-->
<li class="Child"><a href="#">Unix/Linux/Apache</a></li>
<li class="Child"><a href="#">应用服务器</a></li>
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
</ul></li><!--Sub Node 1 -->
</ul>
</div><!-- CNLTreeMenu -->
<!--CNLTreeMenu2 End-->
<!--CNLTreeMenu3 Start:-->
<div class="CNLTreeMenu" id="CNLTreeMenu3">
<h4>CNL Tree Menu3</h4>
<p><a id="AllOpen_3" href="#" onclick="MyCNLTreeMenu3.SetNodes(0);Hd(this);Sw('AllClose_3');">全部展开</a><a id="AllClose_3" href="#" onclick="MyCNLTreeMenu3.SetNodes(1);Hd(this);Sw('AllOpen_3');" style="display:none;">全部折叠</a></p>
<ul>
<li class="Opened"><a href="http://www.iecn.net"&
<ul>
<li><a href="#1">技术区</a>
<ul>
<li><a href="#">网页技术</a>
<ul>
<li class="Child"><a href="#">JavaScript</a></li><!--Child Node-->
<li class="Child"><a href="#">HTML/XHTML/CSS</a></li>
<li class="Child"><a href="#">Ajax</a></li>
<li class="Child"><a href="#">网页制作工具</a></li>
<li class="Child"><a href="#">设计/图形</a></li>
<li class="Child"><a href="#">Flash/多媒体</a></li>
<li class="Child"><a href="#">VML/Web3D</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">Web编程</a>
<ul>
<li class="Child"><a href="#">Java</a></li><!--Child Node-->
<li class="Child"><a href="#">.Net</a></li>
<li class="Child"><a href="#">ASP/VBScript</a></li>
<li class="Child"><a href="#">PHP</a></li>
<li class="Child"><a href="#">Perl/Python</a></li>
<li class="Child"><a href="#">Web综合/开源</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">数据库</a>
<ul>
<li class="Child"><a href="#">Access/SQLServer</a></li><!--Child Node-->
<li class="Child"><a href="#">MySQL/PostgreSQL</a></li>
<li class="Child"><a href="#">Oracle/DB2/Sybase</a></li>
</ul></li><!--Sub Node 3-->
<li><a href="#">服务器</a>
<ul>
<li class="Child"><a href="#">Windows/IIS</a></li><!--Child Node-->
<li class="Child"><a href="#">Unix/Linux/Apache</a></li>
<li class="Child"><a href="#">应用服务器</a></li>
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
<li><a href="#1">二级目录</a>
<ul>
<li><a href="#">三级目录</a>
<ul>
<li><a href="#">四级目录</a>
<ul>
<li><a href="#">五级目录</a>
<ul>
<li><a href="#"></a>
<ul>
<li><a href="#">第n级目录</a>
<ul>
<li class="Child"><a href="#">叶结点1</a></li><!--Child Node-->
<li class="Child"><a href="#">叶结点2</a></li>
<li class="Child"><a href="#">叶结点3</a></li>
</ul></li><!--Sub Node n -->
</ul></li><!--Sub Node 6 -->
</ul></li><!--Sub Node 5 -->
</ul></li><!--Sub Node 4-->
</ul></li><!--Sub Node 3-->
</ul></li><!--Sub Node 2-->
</ul></li><!--Sub Node 1 -->
</ul>
</div><!-- CNLTreeMenu -->
<!--CNLTreeMenu3 End-->
<script type="text/javascript">
<!--
var MyCNLTreeMenu1=new CNLTreeMenu("CNLTreeMenu1","li");
MyCNLTreeMenu1.InitCss("Opened","Closed","Child","http://cnlei.iecn.net/myco
var MyCNLTreeMenu2=new CNLTreeMenu("CNLTreeMenu2","li");
MyCNLTreeMenu2.InitCss("Opened","Closed","Child","http://cnlei.iecn.net/myco
var MyCNLTreeMenu3=new CNLTreeMenu("CNLTreeMenu3","li");
MyCNLTreeMenu3.InitCss("Opened","Closed","Child","http://cnlei.iecn.net/myco
-->
</script>
<div class="ViewCode">
<h6>CSS Code:</h6>
<pre>
.CNLTreeMenu img.s
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
.CNLTreeMenu ul
{
padding
:
0
;
}
.CNLTreeMenu li
{
list-style
:
none
;
padding
:
0
;
}
.Closed ul
{
display
:
none
;
}
.Child img.s
{
background
:
none
;
cursor
:
default
;
}
#CNLTreeMenu1 ul
{
margin
:
0 0 0 17px
;
}
#CNLTreeMenu1 img.s
{
width
:
20px
;
height
:
15px
;
}
#CNLTreeMenu1 .Opened img.s
{
background
:
url(skin1/opened.gif) no-repeat 0 0
;
}
#CNLTreeMenu1 .Closed img.s
{
background
:
url(skin1/closed.gif) no-repeat 0 0
;
}
#CNLTreeMenu1 .Child img.s
{
background
:
url(skin1/child.gif) no-repeat 3px 5px
;
}
#CNLTreeMenu2 ul
{
margin
:
0 0 0 17px
;
}
#CNLTreeMenu2 img.s
{
width
:
17px
;
height
:
15px
;
}
#CNLTreeMenu2 .Opened img.s
{
background
:
url(skin2/opened.gif) no-repeat 4px 6px
;
}
#CNLTreeMenu2 .Closed img.s
{
background
:
url(skin2/closed.gif) no-repeat 3px 6px
;
}
#CNLTreeMenu2 .Child img.s
{
background
:
url(skin2/child.gif) no-repeat 3px 5px
;
}
#CNLTreeMenu3 ul
{
margin
:
0 0 0 17px
;
}
#CNLTreeMenu3 img.s
{
width
:
34px
;
height
:
18px
;
}
#CNLTreeMenu3 .Opened img.s
{
background
:
url(skin3/opened.gif) no-repeat 0 1px
;
}
#CNLTreeMenu3 .Closed img.s
{
background
:
url(skin3/closed.gif) no-repeat 0 1px
;
}
#CNLTreeMenu3 .Child img.s
{
background
:
url(skin3/child.gif) no-repeat 13px 2px
;
}
</pre>
</div>
<div class="ViewCode">
<h6>JavaScript Code:</h6>
<pre>
/*
****************************
JavaScript Code for CNLTreeMenu
Version: Ver 1.02
Author : CNLei, 枫岩
E-Mail : <a href="mailto:CNLei.Y.L@gmail.com">CNLei.Y.L@gmail.com</a>
MySite : <a href="http://www.cnlei.net" target="_blank">http://www.cnlei.net</a
Passed : XHtml 1.0, CSS 2.0, IE5.0+, FF1.0+, Opera8.5+
Update : 2006-2-12
****************************
*/
function Ob(o)
{
var o=document.getElementById(o)?document.getElementById(o)
:
o
;
return o;
}
function Hd(o)
{
Ob(o).style.display="none";
}
function Sw(o)
{
Ob(o).style.display="";
}
function ExCls(o,a,b,n)
{
var o=Ob(o);
for(i=0;i<n;i++) {o=o.parentNode;
}
o.className=o.className==a?b:a;
}
function CNLTreeMenu(id,TagName0)
{
this.id=id;
this.TagName0=TagName0==""?"li"
:
TagName0
;
this.AllNodes = Ob(this.id).getElementsByTagName(TagName0);
this.InitCss = function (ClassName0,ClassName1,ClassName2) {
this.ClassName0=ClassName0;
this.ClassName1=ClassName1;
this.ClassName2=ClassName2;
this.ImgBlankA ="<img src=\"css/s.gif\" class=\"s\" onclick=\"ExCls(this,'"+ClassName0+"','"+ClassName1+"',1);\" alt=\"展开/折叠\" />";
this.ImgBlankA+=
this.ImgBlankB ="<img src=\"css/s.gif\" class=\"s\" />";
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==""?this.AllNodes[i].className=ClassName1
:
"
;
";
this.AllNodes[i].innerHTML=(this.AllNodes[i].className==ClassName2?this.ImgBlankB
:
this.ImgBlankA)+this.AllNodes[i].innerHTML
;
}
}
this.SetNodes = function (n)
{
var sClsName=n==0?this.ClassName0
:
this.ClassName1
;
for (i=0;i<this.AllNodes.length;i++ ) {
this.AllNodes[i].className==this.ClassName2?""
:
this.AllNodes[i].className=sClsName
;
}
}
}
</pre>
</div>
<div class="ViewCode">
<h6>HTML Code:</h6>
<pre>
点击右键就可查看^_^
</pre>
</div>
</body>
</html>
Dream Away。
posted on 2006-08-02 04:03
暖暖 阅读(206)
评论(6) 编辑 收藏 所属分类:
Technology