【问题标题】:Not able to hover over dropdown-menu无法将鼠标悬停在下拉菜单上
【发布时间】:2017-06-23 18:53:02
【问题描述】:

我制作了一个有下拉菜单的网站。当调用下拉菜单时,网页的其余部分不会改变,因为我已经给出了页面position:relative;

并且下拉列表的z-index 比页面更高,因此它始终可见。我唯一的问题是,当有人将鼠标悬停在下拉菜单上时,我还想更改下拉菜单的background-color

但不幸的是,当我将鼠标悬停在下拉菜单上时,浏览器认为我将鼠标悬停在页面上,并且由于某种原因不明白我实际上是悬停在下拉菜单上。谁能帮我解决这个问题。

#page {background-color;
    height: 2500px;
    width: 1600px;
    margin: auto;
    position: relative;
}

#dropdown {
    margin: 0px;
}

.dropdownitem {
    opacity: 0.7;
    z-index: 1;
    background-color: red;
}

.dropdownitem:hover {
    background-color: aqua;
    color: white
}

我想我已经明白问题所在了。问题是我有一个 div

position:absolute

在那个 div 里面有很多列表项。因为我的父 div 具有绝对定位,所以元素已从文档流中取出,当我将鼠标悬停在列表项上时,:hover 伪类不适用于那些嵌套的列表项。所以现在我找到了原因,但剩下的就是解决方案,我还没有找到。

【问题讨论】:

  • 嗨,阿曼。我们很乐意提供帮助,但您需要在此处发布您的 HTML 和 CSS 代码,以便我们查看问题所在。
  • 请给我们足够的代码来复制问题。了解如何创建minimal reproducible example
  • 您的网站如何在悬停时显示下拉菜单?
  • 下拉菜单的显示为block

标签: html css drop-down-menu


【解决方案1】:

这可能会有所帮助

ul,
li {
  padding: 0;
  margin: 0;
}

li {
  list-style: none;
  padding: 1em;
}

#page {
  margin: auto;
  position: relative;
}

.mainmenu,
.submenu {
  border: thin solid darkgray;
  text-align: center;
}

.submenu {
  display: none;
}

.mainmenu:hover>.submenu {
  position: absolute;
  top: 50px;
  left: 0;
  display: inline-block;
}

.mainmenu,
.dropdownitem {
  width: 4em;
}

.dropdownitem {
  opacity: 0.7;
  background-color: red;
}

.dropdownitem:hover {
  background-color: aqua;
  color: white
}
<div id="page">
  <nav>
    <ul id="dropdown">
      <li class="mainmenu">Main
        <ul class="submenu">
          <li class="dropdownitem">One</li>
          <li class="dropdownitem">Two</li>
        </ul>
      </li>
    </ul>
  </nav>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 2018-08-15
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多