下拉菜单效果

  之前为大家介绍过有关HTML中的一些比较炫的效果,本篇为大家介绍一些,大家在网站中经常可以见到的一种下拉菜单效果,这种菜单效果一般分为两层,当我们的鼠标经过一级菜单时,隐藏的二级菜单就会显示出来,这样即保证了页面的美观,同时又不会使页面的模块减少,甚至可以增加模块数目。

  一、废话不多说,下面我们来通过HTML+CSS为大家实现一下上面的效果,首先请大家先欣赏一下效果图:

  

 1、界面布局代码:

<body>
     <div id="var">
        <ul>
            <li><a href="#">首页</a></li>
            <li><a href="#">软件工程</a>
                <ul>
                    <li><a href="#">JAVA</a></li>
                    <li><a href="#">NET</a></li>
                </ul>
            </li>
            <li><a href="#">通信工程</a></li>
            <li><a href="#">计算机管理</a>
                <ul>
                    <li><a href="#">JAVA</a></li>
                    <li><a href="#">NET</a></li>
                </ul>
            </li>
            <li><a href="#">物联网系</a></li>
        </ul>
    </div>    
  </body>

 2、css代码:

<style type="text/css">
        *{padding: 0; margin: 0;}
        #var{background-color: #eee; width: 600px; height: 40px; margin: 0 auto;}
        ul{list-style: none;}
        ul li{float: left; line-height: 40px; text-align: center; position: relative;}
        a{ text-decoration: none; color:#000; display: block; padding:0 10px; height: 40px;}
        a:HOVER {color: #fff; background-color: #666;}
        ul li ul li{float: none; background-color: #eee; margin-top: 2px;}
        ul li ul{ position: absolute; left: 0px; top:40px; display: none;}
        ul li ul li a:HOVER { background-color: #06f;}
        ul li:hover ul{ display: block;}
    </style>

  对于CSS代码都是最基本的,我想大家都能的看懂吧,可能有一些看上去有些吃力,下面我就带大家一起分析一下,这段代码:list-style:none;表示去掉样式,也就是去除每个li前的小黑点;对于a下的text-decoration: none;表示去除超链接下的下划线;a:hover表示鼠标经过超链接是的效果;display: block;表示把ul转化为块级元素。其他的都是一些常规属性,就不再赘述,只要理解了盒子模型的理念,这都不是事。

  二、html+css+javascript实现上述效果: 

 3、界面代码:

<body>
    <div id="var">
        <ul>
            <li><a href="#">首页</a></li>
            <li onmouseover="show(this)" onmouseout="quit(this)"><a href="#">软件工程</a>
                <ul>
                    <li><a href="#">JAVA</a></li>
                    <li><a href="#">NET</a></li>
                </ul>
            </li>
            <li><a href="#">物联网工程</a></li>
            <li onmouseover="show(this)" onmouseout="quit(this)"><a href="#">信息管理</a>
                <ul>
                    <li ><a href="#">JAVA</a></li>
                    <li><a href="#">NET</a></li>
                </ul>
            </li>
            <li><a href="#">网络安全</a></li>
            <li><a href="#">计算机科学与技术</a></li>
        </ul>
    </div>
  </body>

 4、css代码:

<style type="text/css">
        *{ margin: 0; padding: 0;}
        #var{background-color: #eee; width: 600px; height: 40px; margin: 0 auto;}
        ul{list-style: none;}
        ul li{ float: left; line-height: 40px; text-align: center;  position: relative;}
        a{ text-decoration: none; padding:0 10px; height: 40px; color:#000; display: block;}
        a:HOVER { color: #fff; background-color: #666;}
        ul li ul li{ float: none; background-color: #eee; margin-top: 2px;}
        ul li ul{ position: absolute; left: 0px; top:40px; display: none;}
        ul li ul li a:HOVER{ background-color: #06f;}
    </style>

 5、JavaScript实现上述效果:

    <script type="text/javascript">
        function show(li){
            var submenu = li.getElementsByTagName("ul")[0];
            submenu.style.display="block";//鼠标经过时显示二级菜单
        }
        function quit(li){
            var submenu = li.getElementsByTagName("ul")[0];
            submenu.style.display="none";//鼠标离开时隐藏二级菜单
        }
    </script>

  三、变化菜单的实现,界面欣赏:

  

 6、界面代码:

<body>
    <div id="var">
        <ul>
            <li><a id="a1" href="#">首页<span>index</span></a></li>
            <li><a href="#">课程大厅<span>home</span></a></li>
            <li><a href="#">学习中心<span>study</span></a></li>
            <li><a href="#">关于我们<span>me</span></a></li>
            <li><a href="#">论坛<span>say</span></a></li>
        </ul>
    </div>
  </body>

 7、css代码:

  <style type="text/css">
        *{ padding: 0px; margin: 0px;}
        #var{ font-size: 12px; font-weight: bold; border-bottom: 8px solid #666; overflow: auto;}
        #var li{ float: left; margin-left: 1px;  list-style: none;}
        #var li a{ line-height: 20px; text-decoration: none; background-color: #ddd; color: #666; display: block; width: 80px; text-align: center;}
        #var li a span{ display: none;}
        #var li a:HOVER{ margin-top: -20px; background-color: #666; color: #fff;}
        #var li a:HOVER span{ display: block;}
    </style>

  讲到这里关于本篇的菜单栏设计,我相信大家都已经学会了,有没有感觉到CSS的强大,反正我算是服了,作为一个网站开发工程师,如果你说你不懂SCC估计有可能会被笑掉大牙。以上内容,如有异议,请留言。

posted @ 2015-04-05 16:18  小破孩123  阅读(1053)  评论(2编辑  收藏  举报