4

我正在创建一个仅使用 css 的下拉菜单。它还有一个嵌套在 <li> 中的子菜单。当我将鼠标悬停在 <li> 上时,子菜单即将出现,但是当我将光标移到上方时,它消失了。

请帮我解决这个问题。

jsFiddle这是小提琴链接

.nav-bar {
  background:#ccc;
  height:38px;
  width:100%;
}
.nav-bar .nav {
  list-style-type:none;
}
.nav li {
  float:left;
  width:auto;
  font:bold 14px/38px Arial, Helvetica, sans-serif;

}
.nav li a {
  padding:0 22px;
  color:#fff;
  display:block;
  text-decoration:none;
}
.nav li a:hover {
  background-color:#231f20;
  color:#66ccff;
}
.nav li  a.activemenu  {
  padding:0 22px;
  background-color:#231f20;
  color:#66ccff;
  display:block;
  text-decoration:none;
}
.nav li.spacer {
  background:url(../images/nav-spacer.jpg) left top no-repeat;
  width:2px;
  height:38px;
  padding:0;
}
.nav li span.arrow {
  margin:0;
  padding-left:5px;
  height:12px;
  font-size:11px;
}
/** sub nav **/
ul.sub-nav {
  list-style-type:none;
  display:none;
  position:absolute;
  background:#f2f2f2;	
  border:solid 1px #bababa;
  border-radius:5px;
  -moz-border-radius:5px;
  padding:10px 0;
  margin-top:5px;
  box-shadow:2px 2px 2px #333;
}
ul.sub-nav li {
  float:none;
}
ul.sub-nav li a {	
  color:#333;
  text-decoration:none;
  font:normal 14px/26px Arial, Helvetica, sans-serif;
  display:block;
}
ul.sub-nav li a:hover {
  background-color:#7f7f7f;
  color:#fff;
}

.nav li:hover ul.sub-nav {
  display:block;
}
ul.sub-nav span {
  position:absolute;
  top:-24px;
  left:20px;
  display:block;
}
<div class="nav-bar">
  <ul class="nav">
    <li><a href="#">Package</a></li>
    <li class="spacer"></li>                
    <li><a href="#">Investigation<span class="arrow">▼&lt;/span></a>
      <ul class="sub-nav">
        <span><img src="http://i.stack.imgur.com/z88Pm.png" alt="" /></span>
        <li><a href="#">Project</a></li>
        <li><a href="#">Project Description</a></li>
        <li><a href="#">Project Account Type</a></li>
        <li><a href="#">Project Resources</a></li>
      </ul>
    </li>
    <li class="spacer"></li>
    <li><a href="#">Messaging</a></li>
    <li class="spacer"></li>
    <li><a href="#">Billing</a></li>
  </ul>
</div>

4

1 回答 1

7

在 下.ul.sub-nav,margin-top 是问题所在。如果您将其删除,它将完全正常工作。

于 2013-08-01T12:46:24.500 回答