CSS实现无限级菜单

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css菜单演示</title>
<style type="text/css">
<!--
#{margin:0;padding:0;border:0;}/*要定义margin属性为0px;否则下拉会居中*/
body { font-family: arial, 宋体, serif; font-size:13px;}

/*下拉菜单样式*/
#menu { width:480px; height:24px;background:#B9D3EE}
#nav {line-height: 24px;}
#nav a {display: block; text-align:center;}
#nav a:visited  {color:#000000;text-decoration:none;}
#nav li {float: left; width: 80px; }/*首层背景色*/
#nav li a:hover{background:#FFD39B;}/*经过背景色*/
/*2级*/
#nav li ul { left: -1000em; position: absolute;}
#nav li ul li{ width: 120px;background:#ECECEC; border:1px solid #B9D3EE; border-top:none;}/*2级下拉列表层背景色,属性*/
#nav li ul a:hover  {color:#000000;}/*2级下拉列表层经过属性*/
#nav li.showhide ul {left: auto;}

/*下拉菜单结束*/
-->
</style>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
//-------------------------------CSS控制部分----------------------
var css_main = '#nav li.showhide ul ';
var css_level = 5;//定义几级菜单,此处根据个人需要修改
var css_array = new Array();
//三级以后可以在此改变属性
function modifycss(level, modifycssarray)
{
 var i = 0;
 css_array[level - 3] = css_array[level - 3].replace(/{(.*?)}/g, function(){if(modifycssarray[i] == null || modifycssarray[i] == ""){i++;return arguments[0];} else {return "{" + modifycssarray[i++] + "}"}});
}
//三级以后可以在此加css属性
function addcss(level, addcssarray)
{
 var i = 0;
 css_array[level - 3] = css_array[level - 3].replace(/{(.*?)}/g, function(){if(addcssarray[i] == null || addcssarray[i] == ""){i++;return arguments[0];} else {return "{" + arguments[1] + addcssarray[i++] + "}"}});
}
//生成css样式
function pushcss(cssstr, level)
{
 if (level == 0) return;
 css_array.push(cssstr + 'li ul a:hover  {color:#000000;}/n' +
       cssstr + 'li ul li{ width: 120px;background:#ECECEC; border:1px solid #B9D3EE; border-top:none;}/n' +
       cssstr + 'li ul { left: -1000em; position: absolute;}/n' +
       cssstr + 'li.showhide ul {left: 119px; top: 0px; }');
 pushcss(cssstr + "li.showhide ul ", --level);
}
pushcss(css_main, css_level - 2);
//modifycss(3, new Array("color:#00ffff;", null, null, null))
//addcss(4, new Array("background:#00ff00;", "background:#00ff00;", null, null))
//打印css样式
document.writeln('<style type="text/css">');
document.writeln(css_array.join("/n"));
document.writeln('</style>');
//----------------------------------------------------------------------
//显示或隐藏菜单
function showMenu() {
    var sfEls = document.body.getElementsByTagName("li");
    for (var i = 0; i < sfEls.length; i++) {
        sfEls[i].onmouseover = function showMenu() {
        this.className += (this.className.length > 0 ? " " : "") + "showhide";
        }
 
        sfEls[i].onmouseout = function showMenu() {
        this.className = this.className.replace(new RegExp("( ?|^)showhide//b"), "");
        }
    }
}
window.οnlοad=showMenu;

//--><!]]>
</script>
</head>

<body>

<!--菜单-->
<div id="menu">
 <ul id="nav">
  <li><a href="#">关于聚想</a>
  <ul>
   <li><a href="#">产品一</a>
    <ul>
     <li><a href="#">三级列表</a>
      <ul>
       <li><a href="#">四级列表</a>
        <ul>
         <li><a href="#">五级列表1</a></li>
         <li><a href="#">五级列表2</a></li>
        </ul>
       </li>
      </ul>
     </li>
    </ul>
   </li>
   <li><a href="#">产品一</a></li>
   <li><a href="#">产品一</a></li>
   <li><a href="#">产品一</a></li>
   <li><a href="#">产品一</a></li>
   <li><a href="#">产品一</a></li>
  </ul>
  </li>
  <li><a href="#">案例展示</a>
  <ul>
   <li><a href="#">服务二</a></li>
   <li><a href="#">服务二</a></li>
   <li><a href="#">服务二</a></li>
   <li><a href="#">服务二服务二</a></li>
   <li><a href="#">服务二服务二服务二</a></li>
   <li><a href="#">服务二</a></li>
  </ul>
  </li>
  <li><a href="#">网络推广</a>
  <ul>
   <li><a href="#">案例三</a></li>
   <li><a href="#">案例</a></li>
   <li><a href="#">案例三案例三</a></li>
   <li><a href="#">案例三案例三案例三</a></li>
  </ul>
  </li>
  <li><a href="#">联系我们</a>
  <ul>
   <li><a href="#">我们四</a></li>
   <li><a href="#">我们四</a></li>
   <li><a href="#">我们四</a></li>
   <li><a href="#">我们四111</a></li>
  </ul>
  </li>
  <li><a href="#">在线演示</a>
  <ul>
   <li><a href="#">演示</a></li>
   <li><a href="#">演示</a></li>
   <li><a href="#">演示</a></li>
   <li><a href="#">演示演示演示</a></li>
   <li><a href="#">演示演示演示</a></li>
   <li><a href="#">演示演示</a></li>
   <li><a href="#">演示演示演示</a></li>
   <li><a href="#">演示演示演示演示演示</a></li>
  </ul>
  </li>
  <li><a href="#">联系我们</a>
  <ul>
   <li><a href="#">联系联系联系联系联系</a></li>
   <li><a href="#">联系联系联系</a></li>
   <li><a href="#">联系</a></li>
   <li><a href="#">联系联系</a></li>
   <li><a href="#">联系联系</a></li>
   <li><a href="#">联系联系联系</a></li>
   <li><a href="#">联系联系联系</a></li>
  </ul>
  </li>
 </ul>
</div>

<script>
//加入收藏夹代码(IE7 + FF有效)
function addfavorite()
{
   if (document.all)
   {
      window.external.addFavorite(window.location.href, '描述信息');
   }
   else if (window.sidebar)
   {
      window.sidebar.addPanel('描述信息', window.location.href, "");
   }
}
</script>
<a href="#" οnclick="addfavorite()">把本站加入收藏</a>
</body>

</html> 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值