首页 > 代码库 > 下拉菜单的若干种实现方式
下拉菜单的若干种实现方式
1.javascript方式 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css/a1.css"> <script src="http://www.mamicode.com/js/jquery.min.js"></script> <style> * { margin: 0; padding: 0; } #nav { background-color: #eee; width: 350px; height: 40px; margin: 0 auto; /*居中*/ } #nav ul li { list-style: none; /*清除li样式*/ } #nav ul li { float: left; /*padding: 0px 10px;*/ /*解决自适应问题,当li中文字内容过长时,会导致溢出。*/ line-height: 40px; /*使文字居于中间位置*/ text-align: center; position: relative; /*父级语速定位*/ } a { text-decoration: none; color: #000; display: block; /*a标签是行内元素,现使其呈现为块级元素,这样鼠标移至上方,整个块的属性都会据hover变化*/ padding: 0 10px; height: 40px; } a:hover { color: #fff; background-color: #666; } ul li ul li { float: none; /*清除样式*/ background-color: #eee; margin-top: 2px; } ul li ul { position: absolute; left: 0; top: 40px; /*相对于div的top*/ display: none; } ul li ul li a:hover { background-color: #b3d9d9; } </style> </head> <body> <div id="nav"> <ul> <li><a href="http://www.mamicode.com/#">首页</a></li> <li onm ouseover="show(this)" onm ouseout="hide(this)"><a href="http://www.mamicode.com/#">链接1</a> <ul> <li><a href="">文本1</a></li> <li><a href="">文本2</a></li> </ul></li> </ul> </div> </body> <script> function show(li){ var li_ul = li.getElementsByTagName("ul")[0]; li_ul.style.display = ‘block‘; } function hide(li){ var submeau = li.getElementsByTagName("ul")[0]; submeau.style.display = ‘none‘; } </script> </html> 2.show()和hide()方式 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/css/a1.css"> <script src="http://www.mamicode.com/js/jquery.min.js"></script> <style> * { margin: 0; padding: 0; } #nav { background-color: #eee; width: 350px; height: 40px; margin: 0 auto; /*居中*/ } #nav ul li { list-style: none; /*清除li样式*/ } #nav ul li { float: left; /*padding: 0px 10px;*/ /*解决自适应问题,当li中文字内容过长时,会导致溢出。*/ line-height: 40px; /*使文字居于中间位置*/ text-align: center; position: relative; /*父级语速定位*/ } a { text-decoration: none; color: #000; display: block; /*a标签是行内元素,现使其呈现为块级元素,这样鼠标移至上方,整个块的属性都会据hover变化*/ padding: 0 10px; height: 40px; } a:hover { color: #fff; background-color: #666; } ul li ul li { float: none; /*清除样式*/ background-color: #eee; } ul li ul { position: absolute; left: 0; top: 40px; /*相对于div的top*/ display: none; } ul li ul li a:hover { background-color: #b3d9d9; } </style> </head> <body> <div id="nav"> <ul> <li><a href="http://www.mamicode.com/#">首页</a></li> <li class="navmenu"><a href="http://www.mamicode.com/#">链接1</a> <ul> <li><a href="">文本1</a></li> <li><a href="">文本2</a></li> </ul> </li> <li class="navmenu"><a href="http://www.mamicode.com/#">链接2</a> <ul> <li><a href="">文本1</a></li> <li><a href="">文本2</a></li> </ul> </li> </ul> </div> </body> <script> // $(".navmenu").mouseover(function(){ // $(this).children("ul").show(); //获得孩子元素 // }); $(function(){ $(".navmenu").mouseover(function(){ $(this).children("ul").show(); //获得孩子元素 }) $(".navmenu").mouseout(function(){ $(this).children("ul").hide(); }) }) </script> </html>
下拉菜单的若干种实现方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。