简单下拉菜单 js css实现的下拉菜单

发布时间:2020-03-25编辑:脚本学堂
一个简单下拉菜单,定义一个id为nav的ul,ul->li里面放的是下拉出来的菜单,也是一个ul,然后结合js与css来实现,适合初学的朋友参考。

首先,定义一个id为nav的ul,ul->li里面放的是下拉出来的菜单,也是一个ul:
 

复制代码 代码示例:
<ul id="nav">
<li><a href="<?url ctrl=home?>">首 页</a></li>
<li><a href="#">|</a></li>
<li><a href="#">关于我们</a>
<!-- 下拉部分-->
<ul><li><a href="#">公司简介</a></li>
<li><a href="#">总经理致辞</a></li>
</ul></li>
<!-- 下拉部分-->
</ul>

2、js代码
 

复制代码 代码示例:
<script type=text/javascript><!--//--><![CDATA[//><!--
function menuFix() {
var sfEls = document.getElementById("nav").getElementsByTagName("li");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMousedown=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMouseUp=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp("( ?|^)sfhoverb"),
"");
}
}
}
window.onload=menuFix;
//--><!]]></script>

3、css代码
 

复制代码 代码示例:

#nav {
line-height: 24px; list-style-type: none;
}
#nav a {
display: block; text-align:center;
}
#nav a:link {
color:#a6ce38; text-decoration:none;
}
#nav a:visited {
color:#a6ce38;text-decoration:none;
}
#nav a:hover {
color:#F00; text-decoration:none;;
}
#nav li {
float: left; padding-left:15px; font-family:"微软雅黑"; font-size:14px;
}
#nav li a:hover{
color:#F00;
}
#nav li ul {
line-height:18px; list-style-type: none;text-align:left;
left: -999em; width:120px; position: absolute;

}
#nav li ul li{
background: #FFF;/*没有背景在ie6下会有一点小问题*/
float:left; width:100px;
font-family:"微软雅黑"; font-size:12px; color:#F00;
margin:0px;padding:0;
clear:both;
}
#nav li ul a{
display: block; width:100px;text-align:left;
}
#nav li ul a:link {
color:#a6ce38; text-decoration:none;
}
#nav li ul a:visited {
color:#a6ce38; text-decoration:none;
}
#nav li ul a:hover {
color:#FFF; text-decoration:none;
background:#F00;
}
#nav li:hover ul {
left: auto;
}
#nav li.sfhover ul {
left: auto;
}