关注前端开发微信微信号web007007

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

作者 管理员 发布时间 2012-05-31 01:02 文章分类 DIV&CSS 文章评论 抢沙发 阅读次数

横向菜单是通过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浏览器能解析,其它浏览器视而不见。有关css hack的更多教程,请在www.aa25.cn网站内查找。
本例的最终显示效果如下:


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

 

本文固定链接: http://www.web92.net/32.html | WEB前端开发

该日志由 于2012年05月31日发表在 DIV&CSS 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: CSS网页布局入门教程14:纵向下拉及多级弹出式菜单 | WEB前端开发