使用css创建二级下拉列表

时间:2012-12-13 07:23:00

标签: html css drop-down-menu

我正在尝试创建二级下拉列表。我成功创建了第一级下拉列表,但有点陷入使其达到2级。请协助我完成它..

并且请解释我,我正在做的错误,即使css部分很好,我也无法获得二级下拉(我认为是这样)

编辑:我知道dropdown css上有很多教程。但我想知道为什么这不起作用。

以下是 jsbin

的链接

HTML

<ul id="nav">
  <li>Home</li>
  <li>Details
    <ul id="subNav">
    <li>x details<li>
      <li>y details</li>
    </ul></li>

  <li>About Us
    <ul id="xSubNav">
      <li>About company
        <ul>
          <li>full information</li>
          <li>summary</li>
        </ul></li>
      <li>About Author</li>
    </ul></li>
</ul>

CSS

*{font-family:consolas;}

li{line-height:20px;}

ul#nav>li{float:left;width:100px;list-style:none;
          cursor:hand;cursor:pointer;}

ul#nav li li
{display:none;width:150px;}

ul#nav li ul
{padding:0;margin:0;}

ul#nav>li:hover>ul>li
{display:block;}

ul#nav>li:hover{color:grey;}

ul li li{color:black;}

ul li li:hover
{color:cornflowerblue;}

ul li li:hover li   /* level 2 dropdown part */
{display:block;margin-left:150px;width:300px;}

2 个答案:

答案 0 :(得分:2)

以下是您的代码

的解决方案

只需添加以下css:

ul ul li { position:relative;}
ul ul li ul { position:absolute; display:none; left:0px; top:0px;}
ul ul li:hover ul { display:block;}
ul#nav li li li {display:block;}

检查此工作fiddle

答案 1 :(得分:1)

问题是CSS规则的特殊性。只需将#nav添加到最后三个规则中,不要被第一个规则覆盖。

ul#nav li li{color:black;}

ul#nav li li:hover
{color:cornflowerblue;}

ul#nav li li:hover li
{display:block;margin-left:150px;width:300px;}

我认为还需要进行其他调整,但这就是主意。