事件发生前的下拉显示

时间:2018-12-16 17:50:59

标签: html css drop-down-menu z-index display

长期潜伏者,第一次提问者。我这里有个奇怪的事件...

我的网站顶部有一个导航栏,其中有一些下拉菜单。当鼠标位于显示下拉菜单的区域时,下拉菜单将自动显示。 (请参见下图)。红色箭头表示下拉菜单触发时鼠标所在的位置。 example

我感觉这与z-index有关,但是主要内容的z-index组合不同,并且子菜单不起作用。如果我将z-index更改为“ -1”,它将一直不显示,直到您将鼠标悬停在“ Info”上,但是它将其隐藏在主要内容的后面,并使链接不可单击。

编辑以包含菜单的所有CSS和HTML。谢谢!

#header {
  width: 970px;
  height: 26px;
  margin: 0 auto;
  margin-top: 25px;
  border-bottom-width: thin;
  border-top-width: thin;
  border-left-width: thin;
  border-right-width: thin;
  border-style: solid;
  border-color: #444;
}

.clearfix: after {
  display: block;
  clear: both;
}

.menu-wrap {
  z-index: 1;
  margin: -13px 0px;
  float: right;
}

.menu li {
  margin: 0px;
  list-style: none;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  font-weight: 500;
}

.menu a {
  text-decoration: none;
  color: #2e2728;
}

.menu>ul>li {
  float: left;
  display: block;
  font-size: 13px;
}

.menu>ul>li>a {
  padding: 3px 10px;
}

.menu>ul>li:hover>a,
.menu>ul>.current-item>a {
  background: #2e2728;
  height: 15px;
  color: #fff;
}

.menu li:after {
  content: '|';
  color: #2e2728;
  display: inline-block;
}

.menu li:last-child:after {
  content: none;
}

.menu li:hover .sub-menu {
  opacity: 1;
}

.sub-menu {
  padding: 5px 0px;
  margin-top: 3px;
  position: absolute;
  z-index: 0;
  opacity: 0;
  background: #2e2728;
}

.sub-menu li {
  display: block;
  font-size: 13px;
}

.sub-menu li a {
  display: block;
  padding: 0px 10px;
  color: #fff;
}

.sub-menu li a:hover,
.sub-menu .current-item a {
  background: #3e3436;
}
<div id="header">
  <div id="socialmedia">
    other stuff
  </div>

  <div class="menu-wrap">
    <nav class="menu">
      <ul class="clearfix">
        <li><a href="http://www.jon-stone.com/">Home</a></li>
        <li><a href="/urbanexplorations/">Urban Explorations</a></li>
        <li><a href="/galleries/">Galleries</a></li>
        <li><a href="#">Photography&#9662;</a>
          <ul class="sub-menu">
            <li><a href="http://www.jon-stone.com/info/fineart.php">Fine&nbsp;Art&nbsp;Purchasing</a></li>
            <li><a href="http://www.jon-stone.com/weddings/">Weddings</a></li>
            <li><a href="http://www.jon-stone.com/realestate/">Real Estate</a></li>
          </ul>
        </li>
        <li><a href="http://www.jon-stone.com/videography">Videography</a></li>
        <li><a href="">Info&#9662;</a>
          <ul class="sub-menu">
            <li><a href="http://www.jon-stone.com/info/statementandbio.php">Artist&nbsp;Statement&nbsp;&amp;&nbsp;Bio</a></li>
            <li><a href="http://www.jon-stone.com/info/awardsandpublications.php">Awards&nbsp;&amp;&nbsp;Publications</a></li>
            <li><a href="http://www.jon-stone.com/info/events.php">Events</a></li>
          </ul>
        </li>
        <li><a href="http://www.jon-stone.com/contact/">Contact</a></li>
      </ul>
    </nav>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

问题似乎出在子菜单的隐藏方式上。由于其opacity设置为0,因此用户仍可以将其悬停在该项目上。相反,您应该使用display: none寻找解决方案。这样,即使用户将隐藏项目的通常位置悬停在CSS条件下,也不会将其视为悬停状态。