HTML+CSS+JavaScript通过嵌套ul li实现简单的二级菜单
2013-08-07 17:06
1081 查看
HTML网页如下:(通过嵌套的<ul><li></li></ul>)(兼容IE6-9,谷歌火狐等主流浏览器)
<body onload="loadFun()"> <form id="form1" runat="server"> <div id="menu"> <ul> <li><a href="#" onclick="Show('rule')">相关法规</a> <ul id="rule"> <li><a href="#">Adobe Reader</a></li> <li><a href="#">Foxit Reader</a></li> <li><a href="#">操作员计算机IE设置</a></li> <li><a href="#">电子签章办理须知</a></li> </ul> </li> <li><a href="#" onclick="Show('load')">相关下载</a> <ul id="load"> <li><a href="#">Adobe Reader</a></li> <li><a href="#">Foxit Reader</a></li> <li><a href="#">操作员计算机IE设置</a></li> </ul> </li> <li><a href="#" onclick="Show('info')">公司简介</a> <ul id="info"> <li><a href="#">Adobe Reader</a></li> <li><a href="#">Foxit Reader</a></li> </ul> </li> <li><a href="#" onclick="Show('window')">连接窗口</a> <ul id="window"> <li><a href="#">Adobe Reader</a></li> <li><a href="#">Foxit Reader</a></li> </ul> </li> <li><a href="#" onclick="Show('phone')">连接电话</a> <ul id="phone"> <li><a href="#">Adobe Reader</a></li> <li><a href="#">Adobe Reader</a></li> </ul> </li> </ul> </div> </form> </body>
网页加载时,需要将所有的菜单项都暂时隐藏,调用相关的JavaScript代码
/*网页加载时触发的函数*/ function loadFun() { //获取<ul></ul>的所有子节点<li>节点5个 var array = document.getElementsByTagName("ul").item(0).childNodes; //遍历子节点 for (var i = 0; i < array.length; i++) { //获取<li></li>标签的子节点 var childnodes = array[i].childNodes; for (var j = 0; j < childnodes.length; j++) { //如果碰到主菜单中的<ul>标签就隐藏该子菜单的下拉菜单 if (childnodes[j].tagName == "UL") { childnodes[j].style.display = "none"; } } } }
详细的CSS代码如下:
<style type="text/css"> /*设置上一级菜单的样式*/ html,body { width:100%; height:100%; /*消除网页的边界*/ margin:0px; padding:0px; border-style:none; } #menu { width:225px; height:320px; background-color:RGB(216,216,216); padding:0px; margin:0px; } /*去掉列表前的圆点*/ #menu ul { width:225px; list-style-type:none; padding:0px; margin:0px; /*消除左侧间隙*/ } #menu ul li { width:225px;/*填充满整个边栏*/ /* margin:0px; padding:0px; */ } #menu ul li a { display:block; /*先转化成块级元素*/ color:Gray; text-align:left; text-decoration:none; padding:10px 0px 10px 30px;/*设置距离左侧的边栏和上边距*/ font-size:14px; } #menu ul li a:hover { color:Orange; text-align:left; text-decoration:none; padding:10px 0px 10px 30px; font-size:14px; } /*设置子菜单的样式*/ #menu ul li ul { list-style-type:none; /* padding:0px; margin:0px; */ } #menu ul li ul li { width:225px; /*通过设置宽度来填充*/ } #menu ul li ul li a { display:block; /*此处可以通过设置来调整相关的样式*/ padding:6px 0px 6px 60px; text-align:left; text-decoration:none; font-size:12px; } #menu ul li ul li a:hover { padding:6px 0px 6px 60px; text-align:left; text-decoration:none; font-size:12px; color:Black; background-color:#CD2626; } </style>
鼠标点击触发的JavaScript代码如下:
/*点击按钮是触发的事件*/ var arrays = new Array("rule","load","info","window","phone"); function Show(tagId) { for (var i = 0; i < arrays.length; i++) { if (arrays[i] == tagId) { //设置全新的背景颜色 document.getElementById(arrays[i]).parentNode.style.backgroundColor = "RGB(237,237,237)"; document.getElementById(arrays[i]).style.display = "block"; } else { //将背景颜色还原 document.getElementById(arrays[i]).parentNode.style.backgroundColor = "RGB(216,216,216)"; document.getElementById(arrays[i]).style.display = "none"; } } }
效果图如下:
相关文章推荐
- css案例学习之ul li dl dt dd实现二级菜单
- HTML/CSS/JS实现二级菜单导航+轮播图
- HTML+CSS实现简单三级菜单
- javascript+html+css简单的实现复选框的全选与单选
- ul和li简单语句实现DIV+CSS分两列(多列)布局显示(转)
- ul和li简单语句实现DIV+CSS分两列(多列)布局显示
- ul和li简单语句实现DIV+CSS分两列(多列)布局显示
- Html+css+div+ul+li制作Web前端导航菜单。
- JavaScript+CSS实现的可折叠二级菜单实例
- html和css实现一级菜单和二级菜单学习笔记
- jq+css+html简单实现导航下拉菜单
- JavaScript事件流 HTML和CSS代码支持页面的外观,JavaScript代码支持页面的行为,而JavaScript与HTML之间的交互是通过事件实现的。事件,是文档或者浏览器窗口中发生
- 简单的二级菜单导航实现css代码
- Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换
- 初学JavaScript 之 一个简单的JavaScript+css实现的菜单
- JavaScript实际应用:简单二级联动菜单实现
- html和css实现一级菜单和二级菜单学习笔记
- Html用ul li实现多级横向菜单
- 小菜学习日记—html实现简单下拉二级菜单