符合web标准的弹出菜单集(div+css+js)

转载 2006年06月08日 17:52:00
水平方向的PopMenu-弹出菜单(DIV+CSS+JS)

此POPMENU根据alistapart的articles改编,比DW中用显示、隐藏层的方法要简单。在IE6.0 IE5.X Firefox 
NS都能正确显示,只用到很少的JS代码,使用时只要把<ul></ul>部分插入需要的地方即可,不会因分辨率不同
而发生错位的现象。
菜单演示>>

CSS代码

li ul { 
 display: none;
 left: -40px;
 position: absolute;
 top: 24px;
 width: 490px; /*opera需要这个宽度,
 可根据导航条的实际宽度作调整*/
}

li ul li{ 
 display: inline;
}

li ul li a{ 
 background: url(h_line.gif) no-repeat 0px 7px;
 color: #666666;
 font-weight: normal;
 padding: 6px;
 text-align: left;
}

li ul li a:hover{ 
 background: url(h_line.gif) no-repeat 0px 7px;
 color: #DC4E1B;
 text-decoration: underline;
}

li ul,li ul li{ 
 border: 0px;
}
li:hover ul, li.over ul,ul li:hover { 
 display: block;
}

ul { 
 list-style: none;
 margin: 0px;
 padding: 0px;
 font: normal 11px verdana;
}

ul li { 
 border: solid 1px #CCCCCC;
 border-left: 0px;
 float: left;
 position: relative;
}

ul li a { 
 background: #F5F5F5;
 color: #666666;
 display: block;
 font-weight: bold;
 padding: 5px 10px;
 text-align: center;
 text-decoration: none;
}

ul li a:hover { 
 background: #DC4E1B;
 color: #FFFFFF;
}

.left{ 
 height: 24px;
 width: 1px;
}


html:

<ul id="nav">
  <li class="left"></li><li><a href="#">Home</a></li> 
<li><a href="#">About</a><ul> <li><a href="#">Sub menu 21</a>
</li><li><a href="#">Sub menu 22</a></li> <li><a href="#">
Sub menu 23</a></li><li><a href="#">Sub menu 24</a></li> </ul>
</li> <li><a href="#">Products</a><ul><li><a href="#">Sub menu 31
</a></li> <li><a href="#">Sub menu 32</a></li> <li><a href="#">
Sub menu 33</a></li> <li><a href="#">Sub menu 34</a></li></ul> 
</li> <li><a href="#">Services</a><li><a href="#">Contact Us
</a></li>
</ul>


js代码
startList = function() { 
if (document.all&&document.getElementById) { 
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) { 
node = navRoot.childNodes;
if (node.nodeName=="LI") { 
node.onmouseover=function() { 
this.className+=" over";
}
node.onmouseout=function() { 
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;




--------------------------------------------------------------------------------


垂直方向:菜单演示>>

css:

body { 
 font-family: Arial, Helvetica, sans-serif;
 font-size: 11px;
}

#nav, #nav ul { 
 list-style: none;
 background: #F9F9F9;
 font-weight: bold;
 padding: 0px;
 margin: 0px;
 border: solid 1px #CCCCCC;
 border-bottom: 0px;
 width: 150px;
 text-align: left;
}

#nav ul ul{ 
 border: solid 1px #CCCCCC;
 border-bottom: 0px;
}

#nav a { 
 display: block;
 width: 150px;
 w/idth: 140px;
 color: #333333;
 text-decoration: none;
 text-align: center;
 border-bottom: solid 1px #CCCCCC;
 text-align: left;
 padding-left: 10px;
}

#nav a:hover{ 
 color: #336666;
}

#nav a.selected{ 
 background: url(../images/arrow.gif) no-repeat right 50%;
}

#nav li { 
 line-height: 22px;
 position: relative;
}

#nav li ul { 
 position: absolute;
 left: -999em;
 width: 150px;
 font-weight: normal;
 margin: 0px;
 padding: 0px;
}

#nav li li { 
 width: 150px;
}

#nav li ul a { 
 width: 150px;
 w/idth: 126px;
 padding: 0px 12px;
 line-height: 22px;
 text-align: left;
}

#nav li ul ul { 
 margin: 0px 0 0 150px;
}

#nav li:hover ul ul,#nav li.sfhover ul ul{ 
 left: -999em;
}

#nav li:hover ul, #nav li li:hover ul,#nav li.sfhover ul, #nav li li.sfhover ul{ 
 left: auto;
}

#nav li:hover ul,#nav li.sfhover ul{ 
 left: 150px;
 top: 0px;
}

#nav li:hover, #nav li.sfhover { 
 background: #F5E3C0;
}

* html #nav li { 
 float: left;
 height: 1%;
}

* html #nav li a { 
 height: 1%; 
}


js:

<script type="text/javascript"><!--//--><![CDATA[//><!--

sfHover = function() { 
 var sfEls = document.getElementById("nav").getElementsByTagName("LI");
 for (var i=0; i<sfEls.length; i++) { 
  sfEls.onmouseover=function() { 
   this.className+=" sfhover";
   }
  sfEls.onmouseout=function() { 
   this.className=this.className.replace(new RegExp(" sfhover//b"), "");
   }
  }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

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


html:

<ul id="nav">
<li><a href="">Home</a></li>
<li><a href="/aboutme.html">About Me</a></li>
<li><a class="selected" href="/tutorials.html">Tutorials</a>
 <ul>
 <li><a href="#">Sub Menu 31</a></li>
 <li><a class="selected" href="#">Sub Menu 32</a>
 <ul>

 <li><a href="#">Sub Menu 321</a></li>
 <li><a href="#">Sub Menu 322</a></li>
 <li><a href="#">Sub Menu 323</a></li>
 <li><a href="#">Sub Menu 324</a></li>
 </ul>
 </li>
 <li><a href="#">Sub Menu 33</a></li>

 <li><a href="#">Sub Menu 34</a></li>
 </ul>
</li>
<li><a class="selected" href="/gallery/gallery.html">Gallery</a>
<ul>
 <li><a href="#">Sub Menu 41</a></li>
 <li><a class="selected" href="#">Sub Menu 42</a>
 <ul>

 <li><a href="#">Sub Menu 421</a></li>
 <li><a href="#">Sub Menu 422</a></li>
 <li><a href="#">Sub Menu 423</a></li>
 <li><a href="#">Sub Menu 424</a></li>
 </ul>
 </li>
 <li><a href="#">Sub Menu 43</a></li>

 <li><a href="#">Sub Menu 44</a></li>
 </ul>
</li>
<li><a href="#">Contact Me</a></li>
</ul>


《十天学会web标准(div+css)》之第八天:下拉及多级弹出菜单

今天我们开始学习《十天学会web标准(div+css)》的下拉及多级弹出菜单,包含以下内容和知识点: 带下拉子菜单的导航菜单 绝对定位和浮动的区别和运用 css自适应宽度滑动门菜单 一、...

十天学会web标准(DIV+CSS)系列(八)下拉及多级弹出菜单

一、带下拉子菜单的导航菜单 下拉菜单在一些企业网站应用尤为广泛,它存在使用方便,占用空间小等特点。之前纵向导航教程中已使用过二级导航,今天制作下横向导航菜单的二级菜单,方法和纵向一样,只不过由纵...
  • jarniyy
  • jarniyy
  • 2016年03月21日 12:53
  • 243

5款纯div+css制作的弹出菜单(标准且无js)

一、最基本的:二级dropdown弹出菜单

纯div与css的弹出菜单 js技巧

upmenu-水平竖弹向上三级弹出菜单 /* common styling */ .menu {font-family: verdana, arial, sans-serif; width:7...

十天学会web标准(DIV+CSS)系列(七)横向导航菜单

一、横向列表菜单 前边学习过纵向导航菜单,又学习了float属性,那么要实现横向导航菜单是不是很简单了,只需要把li横向排列就可实现了。把第四节的代码拿过来直接用,修改后的代码如下: ...
  • jarniyy
  • jarniyy
  • 2016年03月21日 12:48
  • 489

div+css制作的弹出菜单

  • 2007年05月12日 15:41
  • 3KB
  • 下载

div+css制作的弹出菜单

  • 2011年12月02日 09:48
  • 7KB
  • 下载

纯div+css制作的弹出菜单

二级菜单弹出 .menu { font-family: arial, sans-serif; width:750px; margin:0; margin:50px 0; } ...
  • enterys
  • enterys
  • 2012年09月24日 13:26
  • 490

利用CSS、Jquery和div实现的横弹出菜单

1、页面 我的菜单 计算机分类 出版社分类 出版日期分类 编程语言 Java .net C/C++ PHP Python ...
  • teamlet
  • teamlet
  • 2014年12月31日 15:07
  • 2203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:符合web标准的弹出菜单集(div+css+js)
举报原因:
原因补充:

(最多只允许输入30个字)