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

html-css05

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

代码:

效果图:

代码含义:

<select>定义为下拉列表菜单标签

<Option>定义下拉列表数据标签

<Value>定义传输的定

实现原理:

通过代码<select>设置一个下拉列表菜单,<option>设计下拉菜单下面的值来达成效果。

代码源件:

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>无标题</title>

</head>

<body>

<form action="" method="get">

<label>下拉列表菜单</label>

<select>

<option value="0">下拉选项1</option>

<option value="1">下拉选项2</option>

</select>

</form>

</body>

</html>

简单地说,在需要出现右键菜单的元素上给 contextmenu 事件绑定显示菜单的处理即可。

建议用 jQuery,实现起来比较容易,因为有现成的插件。

比如这两个:

http://www.trendskitchens.co.nz/jquery/contextmenu/

http://labs.abeautifulsite.net/projects/js/jquery/contextMenu/demo/

html做鼠标悬浮菜单上的选项能出现下拉菜单,CSS+JS做出此效果。

<body>内代码为:

<UL id=fm> 

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

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

</UL></LI></UL>

为了突出效果,做的CSS样式代码为:

<STYLE type=text/css>

*{margin:0padding:0border:0}

#fm { line-height: 24px list-style-type: none background:#666 }/*设置盒子的行高,去掉标记,设置背景颜色*/

#fm a { display: block width: 80px text-align:center }/*设置A标签为块元素不显示,宽度,居中*/

#fm a:link { color:#666 text-decoration:none } /* 设置未访问的链接样式*/

#fm a:visited { color:#666text-decoration:none } /* 设置已访问的链接样式 */

#fm a:hover { color:#FFFtext-decoration:nonefont-weight:bold }  /* 当有鼠标悬停在链接上的颜色 */

#fm li { float: left width: 150px background:#CCC }

#fm li a:hover{ background:#999 }

#fm li ul { line-height: 27px list-style-type: nonetext-align:left left: -999em width: 80px position: absolute }

#fm li ul li{ float: left width: 80px background: #F6F6F6 } 

#fm li ul a{ display: block width: 80pxwidth: 80pxtext-align:leftpadding-left:5px } 

#fm li ul a:link { color:#666 text-decoration:none } 

#fm li ul a:visited { color:#666text-decoration:none } 

#fm li ul a:hover { color:#F3F3F3text-decoration:nonefont-weight:normal background:#C00 } 

#fm li:hover ul { left: auto } 

#fm li.sfhover ul { left: auto } 

#content { clear: left } 

</STYLE>

js代码为:

<SCRIPT type=text/javascript>

function menuFix() { 

var sfEls = document.getElementById("fm").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("( ?|^)sfhover\\b"), 

"") 

window.onload=menuFix 

</SCRIPT>

最后的效果图为:

以上就是用html做鼠标悬浮菜单上的选项能出现下拉菜单的解决方法。