1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

下拉菜单的竖向实现, 原理基本和那个横向的相同

本帖由 不学无术2005-10-28 发布。版面名称:前端开发

  1. 不学无术

    不学无术 Ulysses 的元神

    注册:
    2005-08-31
    帖子:
    16,714
    赞:
    39
    代码如下:

    HTML:
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>下拉菜单,竖向</title>
    <style type="text/css" media="screen">
    <!--
    #Nav {  /*Make the left border */
        width: auto;
    	float: left;
        border-left: 1px solid #777;
    }
    ul {
    	margin: 0px;
    	padding: 0px;
    	list-style: none;
    	/*display: inline;*/
    }
    ul li {
    	position: relative;
    	width: 120px;
    	float: left;
    }
    li ul {
        position: absolute;
        left: 0px;
        top: 23px;
        display: none;
    	border-bottom: 1px solid #777;
    	border-left: 0px;
    }
    ul li a {
        display: block;
        font-size: 12px;
    	line-height: 22px;
        text-decoration: none;
        color: #333;
        background-color: #FFF;
        height: 22px;
    	padding-left: 8px;
        border: 1px solid #777;
        border-left: 0px;
    }
    ul li ul li a { /* The border of main menus is different from the sub menus */
        border: 1px solid #777;
        border-bottom: 0px;
    }
    a:hover {
        color: #F60;
        background-color: #EFEFEF;
    }
    /* Fix IE. Hide from IE Mac \*/
    * html ul li {
        float: left;
        height: 1%;
    }
    * html ul li a {
        height: 1%;
    }
    /* End */
    li:hover ul, li.over ul {
        display: block;
    }
    -->
    </style>
    <script language="javascript" type="text/javascript">
    <!--
    startList = function() {
       if (document.all && document.getElementById) {
           var menuRoot = document.getElementById("Menu");
           for (var i = 0; i < menuRoot.childNodes.length; i++) {
               var node = menuRoot.childNodes[i];
               if (node.nodeName == "LI") {
                   node.onmouseover = function() {
                       this.className += " over";
                   }
                   node.onmouseout = function() {
                       this.className = this.className.replace(" over", "");
                   }
              }
           }
       }
    }
    window.onload = startList;
    -->
    </script>
    </head>
    
    <body>
    <div id="Nav">
      <ul id="Menu">
        <li><a href="#">Home</a></li>
        <li><a href="#">About us</a>
          <ul>
         <li><a href="#">Brief</a></li>
         <li><a href="#">History</a></li>
         <li><a href="#">Awards</a></li>
       </ul>
        </li>
        <li><a href="#">Services</a>
          <ul>
         <li><a href="#">Sites</a></li>
         <li><a href="#">Hosts</a></li>
         <li><a href="#">E-mail</a></li>
       </ul>
        </li>
        <li><a href="#">Contact us</a>
          <ul>
         <li><a href="#">Asia</a></li>
         <li><a href="#">North American</a></li>
         <li><a href="#">Europe</a></li>
       </ul>
        </li>
      </ul>
    </div>
    </body>
    </html>
    需要说明的是:
    首先为了获得主菜单左侧的边框,我增加了一个 id="Nav" 的块元素,并且浮动在左侧(发现没有了这个浮动,不会出现边框)。等一下看看直接让 Menu 浮动在左侧会不会有。

    然后对于子菜单的定位,同横向有些不同。

    演示:

    下拉菜单,纵向
    下拉菜单,横向
    菜单翻转图片效果
     
  2. 老林

    老林 New Member

    注册:
    2005-09-06
    帖子:
    10,580
    赞:
    36
    收下再说
     
  3. fyfei

    fyfei New Member

    注册:
    2005-10-07
    帖子:
    9,067
    赞:
    46
    已收藏。
    顿时对不学兄很欣赏:)
     
  4. 西子宜

    西子宜 Well-Known Member

    注册:
    2005-09-05
    帖子:
    15,739
    赞:
    62
    很不错
     
  5. kamsang

    kamsang New Member

    注册:
    2005-10-05
    帖子:
    9,080
    赞:
    58
    不错了..
     
  6. 西子宜

    西子宜 Well-Known Member

    注册:
    2005-09-05
    帖子:
    15,739
    赞:
    62
  7. lane

    lane New Member

    注册:
    2005-09-05
    帖子:
    6,548
    赞:
    29
    收藏在哪里?
     
  8. jcking

    jcking Well-Known Member

    注册:
    2005-08-30
    帖子:
    22,282
    赞:
    70
    我也收了,虽然我不懂.