基于CSS与JavaScript实现下拉菜单的完整示例
本文提供了一套完整的HTML、CSS和JavaScript代码示例,展示如何构建一个标准的下拉菜单。通过CSS控制菜单的布局与隐藏显示,结合JavaScript处理鼠标悬停事件以增强交互体验。代码包含详细的样式定义和DOM操作逻辑,适用于需要快速实现基础导航功能的Web项目。
HTML结构、CSS样式与JavaScript交互实现
<!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>导航菜单</title> <script language="javascript"> // JavaScript 文档初始化
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 type="text/css"> <!-- body { font: normal 11px verdana; }
ul { margin: 0; padding: 0; list-style: none; width: 150px; /* 菜单项宽度 */ border-bottom: 1px solid #ccc; } ul li { position: relative; } li ul { position: absolute; left: 149px; /* 设置为比菜单宽度小1像素 */ top: 0; display: none; }
/* 菜单项样式 */ ul li a { display: block; text-decoration: none; color: #777; background: #fff; /* IE6 兼容 */ padding: 5px; border: 1px solid #ccc; /* IE6 兼容 */ border-bottom: 0; } /* IE 需求 Holly Hack \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* 结束 */
li:hover ul, li.over ul { display: block; } /* 核心逻辑 */ --> </style> </head>
<body> <ul id="nav"> <li><a href="#">首页</a></li> <li><a href="#">关于</a> <ul> <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> </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>
</ul> </body> </html>
JS监听滚动事件:回到顶部按钮的显示与隐藏逻辑
2026-11-05 16:19:37
JavaScript怎么读写LocalStorage与SessionStorage
2026-11-05 15:40:11
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
2026-11-05 11:24:55
flv.js 与 hls.js 在直播场景下的选型对比
2026-11-05 08:18:52
JavaScript能做什么?前端开发中的作用与应用场景解析
2026-11-04 23:17:54
