You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让导航栏下拉框在鼠标悬停时保持显示?

导航栏下拉框鼠标移入消失问题解决

问题

导航栏中,鼠标悬停在菜单上时下拉框正常显示,但鼠标移到下拉框上时下拉框立刻消失,推测是菜单与下拉框间的间隙导致菜单失去悬停状态,触发下拉框恢复display: none。

原因

当前CSS通过<a>标签的hover状态控制下拉框显示,当鼠标从<a>移到下拉框时,<a>不再处于hover状态,下拉框随之隐藏。另外选择器a:hover + .dropdownda仅作用于<a>的直接兄弟元素,无法覆盖下拉框内的hover场景。

解决方案

将hover事件绑定到父元素<li>上,这样鼠标在<li>及其所有子元素(包括下拉框)上时,都能维持hover状态;同时统一下拉框类名,简化代码。

修改后的CSS代码

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

body {
  font-family: sans-serif;
}

.navbar {
  background-color: darkgray;
  height: 80px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3%;
}

.logo {
  font-size: 28px; /* 补全之前缺失的字体大小 */
}

.navbar ul {
  display: flex;
  list-style-type: none;
}

.navbar ul li {
  padding: 10px 25px;
  position: relative;
}

.navbar ul li a {
  color: black;
  text-decoration: none;
  font-size: 22px;
}

.navbar ul li:hover a {
  color: purple; /* 改为li hover时改变a的颜色 */
}

/* 统一下拉框样式 */
.dropdown {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: darkgray;
}

/* 当li hover时显示下拉框 */
.navbar ul li:hover .dropdown {
  display: block;
}

.dropdown ul {
  display: block;
  margin: 10px;
  text-align: center;
}

.dropdown ul li {
  width: 180px;
  padding: 10px;
}

修改后的HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Be Aware - First Response</title>
</head>
<body>
  <div class="navbar">
    <h1 class="logo">BE AWARE</h1>
    
    <ul>
      <li>
        <a href="#">Drug Advocacy</a>
        <div class="dropdown"> <!-- 统一类名为dropdown -->
          <ul>
            <li><a href="#">Drug Awareness</a></li>
            <li><a href="#">Types of Drugs</a></li>
            <li><a href="#">Abuse and Prevention</a></li>
          </ul>
        </div>
      </li>

      <li>
        <a href="#">First Aid</a>
        <div class="dropdown"> <!-- 统一类名为dropdown -->
          <ul>
            <li><a href="#">Explaining First Aid</a></li>
            <li><a href="#">Purpose of First Aid </a></li>
            <li><a href="#">First Aid Kit</a></li>
          </ul>
        </div>
      </li>

      <li><a href="#">Our Cause</a></li>
      <li><a href="#">Gallery</a></li>
      <li><a href="#">Logout</a></li>
    </ul>
  </div>
</body>
</html>

说明

  • 把hover触发源从<a>改为父级<li>,确保鼠标在菜单或下拉框内时,<li>始终处于hover状态,下拉框保持显示。
  • 统一下拉框类名dropdown,避免重复编写相同样式,提升代码可维护性。
  • 补全了logo缺失的字体大小,优化页面显示效果。

内容的提问来源于stack exchange,提问作者BrentLeon03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:57:47