本文将使用css+html+js实现横向菜单。具有多级弹出菜单下拉。

首先我们来看看效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvajkwMzgyOTE4Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

首先应该写html部分的代码,代码比較简单,代码例如以下:

<body>

    <div id="menu">
<ul>
<li><a href="#" id="current">首页</a></li>
<li><a href="#">网页版式</a>
<ul>
<li><a href="#">自适应宽度</a></li>
<li><a href="#">固定宽度</a></li>
</ul>
</li> <li><a href="#">web教程</a>
<ul>
<li><a href="#">新手入门</a></li>
<li><a href="#">视频教程</a></li>
<li><a href="#">常见问题</a></li>
</ul>
</li> <li><a href="#">web实例</a></li>
<li><a href="#">经常使用代码</a></li>
</ul>
</div> <div id="s1">
<ul>
<li><a href="#">软件project</a>
<ul>
<li><a href="#">java ee</a></li>
<li><a href="#">c</a></li>
</ul>
</li> <li><a href="#">程序语言</a>
<ul>
<li><a href="#">android</a></li>
<li><a href="#">java</a></li>
</ul>
</li> </ul>
</div> </body>

接着写css的代码,代码中都有凝视,方便阅读和理解:

<style type="text/css">

body {
font-family: Verdana; /* 字体*/
font-size: 12px; /* 字体大小*/
line-height: 1.5; /*行高 */
} a {
color: #000; /* 正常时的颜色 */
text-decoration: none; /*取消下划线 */
} a:hover {
color: #F00; /* 鼠标经过时显示的颜色 */
} #menu {
width:500px; /* div的宽度 */
height:28px; /* 高度 */
margin:0 auto; /* 水平居中 */
border-bottom:3px solid #E10001;/*设置底端线 */
} #menu ul {
list-style: none; /* 取消列表样式 */
margin: 0px; /*外边距为0 */
padding: 0px; /*内边距为0 */
} #menu ul li {
float:left; /* 水平浮动 */
margin-left:2px;/*左边外边距为2px */
} #menu ul li a {
display:block;
width:87px;
height:28px;
line-height:28px;
text-align:center;
background:url(./m14.jpg) 0 0 no-repeat;
font-size:14px;
} #menu ul li a:hover {
background:url(./m13.jpg) 0 0 no-repeat;
} #menu ul li a#current {
background:url(./m12.jpg) 0 0 no-repeat;
font-weight:bold;
color:#fff;
} #menu ul li ul {
border:1px solid #ccc;
display:none;
position:absolute;
} #menu ul li ul li {
float:none;
width:87px;
background:#eee;
margin:0;
} #menu ul li ul li a {
background:none;
} #menu ul li ul li a:hover {
background:#333;
color:#fff;
} #menu ul li:hover ul {
display:block;
} #menu ul li.sfhover ul {
display:block;
} #s1{
background-color: pink;
width:180px;
border:2px solid red;
position:relative;
left:200px;
top:190px;
height:60px;
} #s1 ul li{
list-style-type: none;
height:25px;
width:50px;
background-color: #0ff;
float:left;
margin:10px;
} #s1 ul li ul{
display:none;
position:absolute;
} #s1 ul li:HOVER ul{
display:block;
background-color: blue;
margin:0px;
padding:0px;
/* width:100px; */
} #s1 ul li.sfhover ul {
display:block;
margin:0px;
padding:0px;
} #s1 ul li ul li{
border:1px solid red;
float:none;
margin:0px;
width:50px; } </style>

完毕上面的步骤后,能够进行測试了,你会发现,上面的代码仅仅在谷歌浏览器能够操作正常。能够实现下拉菜单。可是在ie和其它的浏览器,不能正常使用下拉菜单,浏览器不兼容引起的,所以为了写出兼容全部浏览器的菜单,还需js代码的控制。js代码例如以下;

<script type="text/javascript">
function menuFix() {
var sfEls = document.getElementById("menu").getElementsByTagName("li");
var sfEls2 = document.getElementById("s1").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"),
"");
};
} for (var i=0; i<sfEls2.length; i++) {
sfEls2[i].onmouseover=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
};
sfEls2[i].onMouseDown=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
};
sfEls2[i].onMouseUp=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
};
sfEls2[i].onmouseout=function() {
this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),
"");
};
} }
window.onload=menuFix; </script>

如今就能够执行正常了,会出现本文開始显示的效果,因为是做測试的,所以有些css代码没有去掉,主要是方便调试

最新文章

  1. 前端之float的几种清除浮动方式
  2. ASP.NET MVC5 网站开发实践(二) Member区域 - 文章管理架构
  3. [原]那些年整理的Linux常用命令,简单明了
  4. SpringBoot和数据库连接
  5. Servlet学习五——流的分发
  6. 通过 Redis 实现 RPC 远程方法调用(支持多种编程语
  7. 记录一下dotnetcore.1.0.0-VS2015Tools.preview2安装不上的问题
  8. 分享一套精美的现代 UI PSD 工具包【免费下载】
  9. 装系统提示缺少所需的CD/DVD驱动器设备驱动程序
  10. vundle安装 给vim插上翅膀
  11. CSS的基本操作
  12. Linux Mint下编译Bochs
  13. openflashchart + flex
  14. SSAS中Cube的结构
  15. MySQL ERROR 1045错误解决办法
  16. 2015 Multi-University Training Contest 1 题解 BY FZUw
  17. web页面打印
  18. java正则表达式验证标点符号
  19. C# winform项目中ListView控件使用CheckBoxes属性实现单选功能
  20. python练习_12

热门文章

  1. vue 星星评分组件
  2. C# 文件转byte数组,byte数组再转换文件
  3. Java基础学习总结(40)——Java程序员最常用的8个Java日志框架
  4. JAVE 视音频转码
  5. crm2013 查看下拉框的选项
  6. Java vs C++:子类覆盖父类函数时缩小可访问性的不同设计
  7. 洛谷—— P1091 合唱队形
  8. Log4net.confager配置官方文档
  9. JSONP的使用示例(以及jquery版jsonp)超简单
  10. POJ 1275 Cashier Employment 挺难的差分约束题