使用jquery方法实现;实现方法:首先需要引入jquery的版本,引用toggle()的方法,点击当前的一级导航。用this方法来进行当前包含的二级菜单隐藏与显示。
<!DOCTYPE html><html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js" ></script>
</head>
<style>
*{margin: 0 padding: 0}
ul,li{list-style: none}
a{text-decoration: none}
.menu{width: 1000px margin: 0 auto}
.menu li{float: leftwidth: 100pxline-height: 40px text-align: center}
.menu li a{display: block color:redfont-size: 18px}
.menu-two{display: nonewidth: 100px}
.menu li .menu-two a{font-size: 14pxcolor:#0000FF}
</style>
<body>
<ul class="menu">
<li><a href="#">一级菜单</a>
<ul class="menu-two">
<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 class="menu-two">
<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 class="menu-two">
<li><a href="#">二级菜单</a></li>
</ul>
</li>
<li><a href="#">一级菜单</a>
<ul class="menu-two">
<li><a href="#">二级菜单</a></li>
</ul>
</li>
<li><a href="#">一级菜单</a>
<ul class="menu-two">
<li><a href="#">二级菜单</a></li>
</ul>
</li>
</ul>
</body>
<script type="text/javascript">
$(function(){
$(".menu > li a").toggle(
function(e){
$(this).siblings().show()//对当前的.menu>li a的兄弟节点menu-two进行显示
e.preventDefault()//阻止冒泡事件.
},function(e){
$(this).siblings().hide()对当前的.menu>li a的兄弟节点menu-two进行隐藏
e.preventDefault()
}
)
})
</script>
</html>
2.使用css的伪类样式hover实现,html结构上面的一样,只需要把二级菜单进行隐藏(display:none)然后在用hover方式,鼠标移上去让当前隐藏的(.menu-tow)进行(display:block)显示,纯css的方式:
<style>*{margin: 0 padding: 0}
ul,li{list-style: none}
a{text-decoration: none}
.menu{width: 1000px margin: 0 auto}
.menu li{float: leftwidth: 100pxline-height: 40px text-align: center}
.menu li a{display: block color:redfont-size: 18px}
.menu-two{display: nonewidth: 100px}/***隐藏当前的二级菜单***/
.menu li .menu-two a{font-size: 14pxcolor:#000}
.menu li:hover .menu-two{display: block}/**鼠标的hover伪类事件对.menu-tow进行显示**/
</style>
3.2种方式都可以实现想要的下拉菜单效果,jquery的实现方式与纯css的实现方式均可以,如果需要有个缓动的动画效果,可以在当前的jquery方式下进行修改,纯css的实现需要用css3的属性来实现。都是很酷炫的(PS:css3的效果只支持ie9及以上)。
首页我们打看dreamweaver或其它编辑器,创建一个名为nav的导航菜单<div class="nav">
<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>
</div>
如下图所示:
2
现在我们为nav添加样式,首先去掉默认的margin和padding,再去掉<ul><li>标签的list-style样式和<a>标签的默认下划线。接下来再添加适当的样式(根据实际需要添加)进行美化,如一下样式:
<style type="text/css">
* { margin:0padding:0}
ul, li { list-style:none}
a { text-decoration:none}
.nav { border:2px solid #cccborder-right:noneoverflow:hiddenfloat:leftmargin:100px 0 0 300px}
.nav ul li { float:left}
.nav ul li a { width:120pxheight:40pxtext-align:centerline-height:40pxdisplay:blockborder-right:2px solid #cccbackground:#eeecolor:#666}
.nav ul li a:hover{ color:#f00}
</style>
打开页面预览效果
3
像这样,一个菜单横向菜单就建好了,下来我们给栏目一,栏目二,栏目三,添加二级下拉菜单
<div class="nav">
<ul>
<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>
<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>
<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></li>
<li><a href="#">栏目五</a></li>
</ul>
</div>
4
添加完二级栏目后,现在我们开始添加css样式,首先给<li>标签下的<ul>标签添加相对定位,再去除之下<li>标签的做浮动样式,再适当修改<a>标签,如一下样式:
.nav ul li ul { position:absolute}
.nav ul li ul li { float:none}
.nav ul li ul li a { border-right:noneborder-top:1px dotted #cccbackground:#f5f5f5}
我们刷新页面预览下效果
5
接下来我们隐藏掉二级下来菜单,并给它添加鼠标滑动效果,使得当鼠标滑动到主栏目时,二级下来菜单显示,样式如下:
.nav ul li ul { position:absolutedisplay:none}
.nav ul li ul li { float:none}
.nav ul li ul li a { border-right:noneborder-top:1px dotted #cccbackground:#f5f5f5}
.nav ul li:hover ul{ display:block}
再次预览效果,如下图所示:
6
至此,横向二级下拉菜单就制作完成了,这里附加上全部代码,以方便各位朋友参考,感谢各位朋友的浏览。
<!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/htmlcharset=utf-8" />
<title>横排二级下拉菜单</title>
<style type="text/css">
* { margin:0padding:0}
ul, li { list-style:none}
a { text-decoration:none}
.nav { border:2px solid #cccborder-right:noneoverflow:hiddenfloat:leftmargin:100px 0 0 300px}
.nav ul li { float:left}
.nav ul li a { width:120pxheight:40pxtext-align:centerline-height:40pxdisplay:blockborder-right:2px solid #cccbackground:#eeecolor:#666}
.nav ul li a:hover{ color:#f00}
.nav ul li ul { position:absolutedisplay:none}
.nav ul li ul li { float:none}
.nav ul li ul li a { border-right:noneborder-top:1px dotted #cccbackground:#f5f5f5}
.nav ul li:hover ul{ display:block}
</style>
</head>
<body>
<div class="nav">
<ul>
<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>
<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>
<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></li>
<li><a href="#">栏目五</a></li>
</ul>
</div>
</body>
</html>