如何使用HTML和CSS制作下拉菜单

html-css02

如何使用HTML和CSS制作下拉菜单,第1张

制作下拉菜单有2种方法:

使用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>