浮动我的下拉导航栏

时间:2013-12-12 13:44:56

标签: html css drop-down-menu

我在使导航栏工作时遇到了一些问题。以下是导航栏的所需输出:example

我正在尝试这样做,以便当用户悬停导航栏的顶层时,会显示一个下拉列表。

但是,导航栏的第二级只是浮动。我该如何设计呢?

这是我的HTML:

  <div id="menubar">
    <ul id="menu">
      <li class="selected"><a href="">Home</a></li>
      <li><a href="">Volunteers</a>
      <ul>
      <li><a href="">Add</a></li>
      <li><a href="">View</a></li>
      <li><a href="">Update</a></li>
      </ul>
      </li>
      <li><a href="">Packaging Session</a>
      <ul>
      <li><a href="">Add</a></li>
      <li><a href="">View</a></li>
      <li><a href="">Update</a></li>
      </ul>
      </li>
    </ul>
  </div>

这是我的CSS:

#menubar
{ width: 900px;
  height: 72px;
  padding: 0;
  background: #1293EE;} 

ul#menu, ul#menu li
{ float: left;
  margin: 0; 
  padding: 0;}

ul#menu li
{ list-style: none;}

ul#menu li a
{ letter-spacing: 0.1em;
  font: normal 100% arial, sans-serif;
  display: block; 
  float: left; 
  height: 37px;
  padding: 29px 26px 6px 26px;
  text-align: center;
  color: #FFF;
  text-transform: uppercase;
  text-decoration: none;
  background: transparent;} 

ul#menu li a:hover, ul#menu li.selected a, ul#menu li.selected a:hover
{ color: #FFF;
  background: #0D66A5;}

ul#menu li ul li a
{
display: none;
height: auto;
margin: 0;
padding: 0;
position:absolute;
}

在Google Chrome中:

enter image description here

在Internet Explorer中:

enter image description here

2 个答案:

答案 0 :(得分:1)

而不是隐藏下拉列表中的每个a标记,而是隐藏整个ul,并将其用作位置元素,并设置li和{{1}的样式和任何其他元素一样。

示例:http://jsfiddle.net/gd2SX/

查找“添加样式”区域。

答案 1 :(得分:0)

HTMLDog撰写了一篇非常有趣且全面的关于浮动菜单的文章:Sons of Suckerfish

您会对the part about dropdowns特别感兴趣,特别是 the sample they provide

它将帮助您纠正更多,而不仅仅是您的浮动问题。


对于您的特定问题,我建议您禁用隐藏菜单,将所有内容设置为完美,如同所有子菜单都打开一样,然后重新激活隐藏子菜单:

/* Lists directly inside list-items. */
li>ul {
  display: none;
}
/* Lists directly inside hovered list-items. */
li:hover>ul,
li.selected>ul {
  display: block;
}

然后你会发现它更容易修复。