CSS网页布局入门教程14:纵向下拉及多级弹出式菜单

2022-04-15 0 648

学完了上节教程,我想对于这于这节的学习就容易得多了。

横向菜单是通过div及JavaSprict实现下拉控制,纵向菜单呢?答案是肯定的。我们现在要做的就是一个纵向菜单,css代码:

ul { margin:0; padding:0; list-style:none; width:120px; border-bottom:1px solid #ccc; font-size:12px;}

ul li { position:relative;}

li ul { position:absolute; left:119px; top:0; display:none;}

ul li a { width:108px; display:block; text-decoration:none; color:#666666; background:#fff; padding:5px; border:1px solid #ccc; border-bottom:0px;}

ul li a:hover { background-color:#ddd;}

/*解决ul在IE下显示不正确的问题*/

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

* html ul li a { height:1%;}

/* end */

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

css代码的编写基本上保持了与横向导航相同的思路,不同的是,为了实现导航中的了导航与主导航在实现鼠标交互的同时,保持其相对位置一致,我们使用了对ul li{}使用了position:relative;使其定位方式转为相对定位。而对li ul{}即子导航采用了position:absolute;相对于导航的绝对定位方式,了其鼠标交互后的位置一致。

也许您已经发现,这里在css代码未尾增加了一段注释的定义* html ul li 与* html ul li a。这里用到的是CSS hack,这是因为不同的浏览器对代码的解析不同,用来实现在各浏览器上显示相同的效果而使用的。这段代码只有IE浏览器能解析,其它浏览器视而不见。

本例的最终显示效果如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /> <title>下拉纵向及多级弹出式菜单www.aa25.cn</title> <script type=”text/javascript”><!–//–><![CDATA[//><!– startList = function() { if (document.all&&document.getElementById) { navRoot = document.getElementById(“nav”); for (i=0; i<navRoot.childNodes.length; i++) { node = navRoot.childNodes[i]; if (node.nodeName==”LI”) { node.onmouseover=function() { this.className+=” over”; } node.onmouseout=function() { this.className=this.className.replace(” over”, “”); } } } } } window.onload=startList; //–><!]]></script> <style> ul { margin:0; padding:0; list-style:none; width:120px; border-bottom:1px solid #ccc; font-size:12px;} ul li { position:relative;} li ul { position:absolute; left:119px; top:0; display:none;} ul li a { width:108px; display:block; text-decoration:none; color:#666666; background:#fff; padding:5px; border:1px solid #ccc; border-bottom:0px;} ul li a:hover { background-color:#ddd;} /*解决ul在IE下显示不正确的问题aa25.cn*/ * html ul li { float:left; height:1%;} * html ul li a { height:1%;} /* end */ li:hover ul,li.over ul { display:block;} </style> </head> <body> <ul id=”nav”> <li><a href=””>文章</a> <ul> <li><a href=””>CSS教程</a></li> <li><a href=””>DOM教程</a></li> <li><a href=””>XML教程</a></li> <li><a href=””>FLASH教程</a></li> </ul> </li> <li><a href=””>参考</a> <ul> <li><a href=””>XHTML</a></li> <li><a href=””>XML</a></li> <li><a href=””>CSS</a></li> </ul> </li> <li><a href=””>BLOG</a> <ul> <li><a href=””>全部</a></li> <li><a href=””>网页技术</a></li> <li><a href=””>UI技术</a></li> <li><a href=””>FLASH技术</a></li> </ul> </li> <li><a href=””>摇滚</a></li> <li><a href=””>纯音乐</a></li> <li><a href=””>古典金曲</a></li> <li><a href=””>电影原声</a></li> </ul> </body> </html>

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 CSS/HTML CSS网页布局入门教程14:纵向下拉及多级弹出式菜单 https://www.niceym.com/16793.html