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

悬停导航栏Drug Advocacy项时下拉菜单不显示的问题求助

导航栏下拉菜单不显示的问题修复

问题分析

你的导航栏下拉菜单无法正常显示,核心问题出在HTML结构错误和CSS选择器逻辑错误,以下是具体问题和修复方案:

1. HTML结构错误

原代码中第一个<li>标签未正确闭合,导致Contact Us和Gallery的<li>被错误嵌套在第一个<li>内部,直接破坏了导航的层级结构。

修复后的HTML代码:

<body>
   <div class="navbar">
      <h1 class="logo">BE AWARE</h1>
      <ul>
         <li>
            <a href="#" class="dropdown">Drug Advocacy</a>
            <div class="dropdownda">
               <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="">Contact Us</a></li>
         <li><a href="">Gallery</a></li>
      </ul>
   </div>
</body>

2. CSS选择器逻辑错误

原CSS中,你试图通过a.dropdown:hover选中它的子元素.dropdownda,但实际上.dropdownda是<a>的兄弟元素,并非子元素,导致选择器完全失效。另外,为了避免鼠标从<a>移到下拉菜单时菜单突然消失,建议将hover事件绑定在父级<li>上。

修复后的CSS代码:

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%;
}

.navbar ul {
  display: flex;
  list-style-type: none;
  margin: 0;
  padding: 0; /* 清除默认内边距,避免布局偏移 */
}

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

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

.navbar ul li a.dropdown {
  font-weight: bold;
  text-decoration: underline;
}

.navbar ul li a:hover {
  color: purple;
}

/* 下拉菜单样式修复 */
.dropdownda {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: darkgray;
  padding: 0;
}

/* 将hover绑定到父li,确保鼠标移到下拉菜单时不消失 */
.navbar ul li:hover .dropdownda {
  display: block;
}

.navbar ul li .dropdownda ul {
  display: block;
  margin: 10px;
  text-align: center;
}

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

关键修复点说明

  • 修正HTML的<li>闭合问题,确保导航项层级正确
  • 把hover事件从<a>标签转移到父级<li>,解决下拉菜单鼠标移开即消失的问题
  • 使用正确的层级选择器(li:hover .dropdownda),因为.dropdownda是<li>的子元素,而非<a>的子元素
  • 清除列表默认的内外边距,优化布局一致性

内容的提问来源于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:17:47