【问题标题】:My drop down menu won't stay open on hover我的下拉菜单在悬停时不会保持打开状态
【发布时间】:2021-10-15 22:36:57
【问题描述】:

我遇到了一个问题,当我将光标悬停在下拉菜单上时,它不会保持打开状态。它有时会保持打开一段时间然后消失。我一直在努力寻找解决方案,但我无法真正说出问题所在。谁能帮我?我是 CSS 和 HTML 的新手...

.arrow {
  background-image: url(arrow.png);
  background-repeat: no-repeat;
  background-position: 100px;
}

.menu-area ul {
  text-transform: uppercase;
  list-style: none;
  width: 145px;
  margin-left: 10px;
  padding: 0px;
  position: absolute;
  display: block;
  box-shadow: 10px 10px 5px rgba(96, 96, 96, 0.8);
}

.menu-area ul ul {
  margin-left: 1px;
  position: absolute;
  display: none;
  left: 100%;
  top: 0px;
}

.menu-area ul li {
  border-bottom: 1px solid white;
  background: MediumVioletRed;
  position: relative;
  display: block;
  margin-bottom: 0px;
}

.menu-area ul li a {
  font-family: verdana;
  font-size: 12px;
  font-weight: bold;
  text-align: left;
  color: white;
  text-decoration: none;
  padding: 10px 20px;
  display: block;
}

.menu-area ul li:hover {
  background-color: hotpink;
}

.menu-area ul li:hover>ul {
  display: block;
}
<div class="menu-area">
  <ul>
    <li><a href="home_guru.php">Home</a></li>
    <li><a class="arrow" href="#">Soalan</a>
      <ul>
        <li><a href="soalan_insert2.php">Add</a></li>
        <li><a href="soalan_update2.php">Update</a></li>
        <li><a href="soalan_delete2.php">Delete</a></li>
        <li><a href="soalan_senarai.php">List</a></li>
        <li><a class="arrow" href="#">Topic</a>
          <ul>
            <li><a href="topik_insert2.php">Add</a></li>
            <li><a href="topik_update2.php">Update</a></li>
            <li><a href="topik_delete2.php">Delete</a></li>
            <li><a href="topik_senarai.php">List</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

【问题讨论】:

  • 听起来您将光标悬停在菜单项的边界之外,这又会关闭子菜单。您要么需要更准确地悬停,要么添加一些代码来确定“悬停意图”,以便在光标短暂离开并重新进入时菜单保持打开状态。
  • 您的 sn-p 正在为我工​​作。只要我不意外走出菜单,它就会保持打开状态。
  • 您可以将margin-left: 1px; 替换为margin-left: 0; 并将padding-left: 1px; 添加到.menu-area ul li:hover&gt;ul。
  • 谢谢大家的建议!

标签: html css


【解决方案1】:

您在.menu-area ul ul 上添加margin-left: 1px;,这会在主ul 和子菜单ul 之间产生1px 的差距。如果你达到了那个差距(这很难,因为它只有 1px 但仍然可能),子菜单就会关闭。

删除边距,使 ul 的“接触”彼此没有间隙,以便在菜单和子菜单之间安全过渡(您可以添加与填充相同的间距,以便保持 1px 的间隙)。除了这个 1px 的差距,一切都运行顺利。

一般而言,我建议添加https://github.com/kamens/jQuery-menu-aim tho,以便在尝试访问最后一个子菜单项时菜单不会关闭(您很可能会移出 main-ul,这会使菜单立即关闭)。

【讨论】:

  • 谢谢先生。它现在正在工作。感谢您的帮助!
  • @Katsudon_1127 随时。请点击复选标记接受答案,以便问题被标记为已解决。
【解决方案2】:

悬停样式未应用,因为与子元素有 1px 的间隙。您可以删除该边距并在子 ul 上设置透明边框

.arrow {
  background-image: url(arrow.png);
  background-repeat: no-repeat;
  background-position: 100px;
}

.menu-area ul {
  text-transform: uppercase;
  list-style: none;
  width: 145px;
  margin-left: 10px;
  padding: 0px;
  position: absolute;
  display: block;
  box-shadow: 10px 10px 5px rgba(96, 96, 96, 0.8);
}

.menu-area ul ul {
  margin-left: 0;
  border-left: 1px solid transparent;
  position: absolute;
  display: none;
  left: 100%;
  top: 0px;
}

.menu-area ul li {
  border-bottom: 1px solid white;
  background: MediumVioletRed;
  position: relative;
  display: block;
  margin-bottom: 0px;
}

.menu-area ul li a {
  font-family: verdana;
  font-size: 12px;
  font-weight: bold;
  text-align: left;
  color: white;
  text-decoration: none;
  padding: 10px 20px;
  display: block;
}

.menu-area ul li:hover {
  background-color: hotpink;
}

.menu-area ul li:hover>ul,
.menu-area ul li>ul:hover {
  display: block;
}
<div class="menu-area">
  <ul>
    <li><a href="home_guru.php">Home</a></li>
    <li><a class="arrow" href="#">Soalan</a>
      <ul>
        <li><a href="soalan_insert2.php">Add</a></li>
        <li><a href="soalan_update2.php">Update</a></li>
        <li><a href="soalan_delete2.php">Delete</a></li>
        <li><a href="soalan_senarai.php">List</a></li>
        <li><a class="arrow" href="#">Topic</a>
          <ul>
            <li><a href="topik_insert2.php">Add</a></li>
            <li><a href="topik_update2.php">Update</a></li>
            <li><a href="topik_delete2.php">Delete</a></li>
            <li><a href="topik_senarai.php">List</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多