完整代码

<!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" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
 <title>Plain Shane Design > CSS Drop Down Demo</title>
 <style type="text/css">
 *{margin:0; padding: 0;}
 body { background:#444;}
 #navcont { background: #fff; width: 100%;}
 #nav { font-family: helvetica; position:relative; width:377px; height:56px; font-size:14px; color:#999; 
margin: 0 auto; }
 #nav ul { list-style-type:none; }
 #nav ul li { float:left; position: relative;}
 #nav ul li a { border-right:1px solid #e9e9e9; padding:20px; display:block; text-decoration:none; text-
align:center; color:#999;}
 #nav ul li a:hover {background: #12aeef url(http://files.jb51.net/demoimg/200912/shadow.png) repeat-x;; 
color:#fff;} 
 #nav ul li ul {display: none;}
 #nav ul li:hover ul {display: block; position: absolute; top:56px; min-width:190px; left:0;} 
 #nav ul li:hover ul li a {display:block; background:#12aeef; color:#ffffff; width: 110px; text-align: 
center; border-bottom: 1px solid #f2f2f2; border-right: none;}
 #nav ul li:hover ul li a:hover { background:#6dc7ec; color:#ffffff; }
 .borderleft {border-left: 1px solid #e9e9e9;}
 .top { border-top: 1px solid #f2f2f2;}
 /*  This piece of code is for a third level drop down menu and is not included in this tutorial  #nav ul 
li:hover ul li ul {display:none;}
 #nav ul li:hover ul li:hover ul {display:block; position: absolute; top:-1px; left: 151px;}*/
 /* Ignore this last piece of code */
 #threestyles {
  width: 500px;
  height: 300px;
  margin: 0px auto;
  border: 2px solid #666;
  margin-top: 30px;
 }
 
 </style>
</head>
<body>
<div id="navcont"> 
<div id="nav"> 
<ul>
 <li class="borderleft"><a href="http://sinoll.com" target="_blank">Home</a></li>
 <li><a href="http://sinoll.com" target="_blank">About Me</a></li>
 <li><a href="http://sinoll.com" target="_blank">Portfolio</a>
  <ul>
   <li class="top"><a href="http://sinoll.com" target="_blank">Web</a></li>
   <li><a href="http://sinoll.com" target="_blank">Print</a></li>
   <li><a href="http://sinoll.com" target="_blank">The Rest</a></li>
  </ul>
 </li> 
 <li><a href="http://sinoll.com" target="_blank">Contact</a>
   <ul>
    <li class="top"><a href="http://sinoll.com" target="_blank">Web</a></li>
    <li><a href="http://sinoll.com" target="_blank">Print</a></li>
    <li><a href="http://sinoll.com" target="_blank">The Rest</a></li>
   </ul>
 </li>
</ul>
</div>
</div>

</body>
</html>

先创建一个div来做为容器,然后把这个导航菜单放到这个内器里.正如下面的代码,我们用无序列表来创建这个导航菜单.在这个导航菜单中Portfolio项下有一个子菜单,我用粗体表示出来,最后说一句别忘了关闭</li>

<div id="nav"> 
<ul> 
<li class="first"><a href="#">Home</a></li> 
<li><a href="#">About Me</a></li> 
<li><a href="#">Portfolio</a> 
<ul> 
<li><a href="#">Web</a></li> 
<li><a href="#">Print</a></li> 
<li><a href="#">Photos</a></li> 
</ul> 
</li> 
<li><a href="#">Contact Me</a></li> 
</ul> 
</div>

接下来,我们来给#nav div设置一个样式,给它一个宽度,高度,字体大小.并把默认的无序列表样式给去掉

*{ margin:0px; padding: 0px; } 
#nav { 
font-family: arial, sans-serif; 
position: relative; 
width: 390px; 
height:56px; 
font-size:14px; 
color:#999; 
margin: 0 auto; 
} 
#nav ul { 
list-style-type: none; 
}

下面这一步我们给<li>设置左浮动让整个导航水平.并且设置相对,记<li>成为一个祖元素,这样我们下面就可以利用到绝对定位了.

#nav ul li { 
float: left 
position: relative; 
}

接着,我们给<a>标签设置一个样式被它看起来像一个按扭

#nav ul li a { 
text-align: center; 
border-right:1px solid #e9e9e9; 
padding:20px; 
display:block; 
text-decoration:none; 
color:#999; 
}

 最重要的部分这部分将展示给你看如何让下拉菜单的显示和隐藏. 当光标没有移动到WEB项里下拉菜单不显示,当光标移动到WEB项上面时下拉菜单显示,我们用display的属性来实现这个效果.

#nav ul li ul { 
display: none 
} 
#nav ul li:hover ul { 
display: block; 
position: absolute; 
}

最后,我们给下拉菜单的悬停状态设置样式

#nav ul li:hover ul li a { 
display:block; 
background:#12aeef; 
color:#ffffff; 
width: 110px; 
text-align: center; 
border-bottom: 1px solid #f2f2f2; 
border-right: none; 
} 
#nav ul li:hover ul li a:hover { 
background:#6dc7ec; 
color:#fff; 
}

完