答案:通过css的position和:hover实现下拉菜单。首先设置父级.dropdown为relative,子菜单.submenu为absolute并隐藏;当鼠标悬停时显示子菜单,并可添加过渡动画提升体验。

要在CSS中实现下拉菜单效果,关键在于合理使用 CSS定位(position) 和 :hover 伪类 来控制子菜单的显示与隐藏。整个过程不依赖javaScript,仅通过结构和样式就能完成交互效果。
基本html结构
下拉菜单通常由一个父级菜单项和多个隐藏的子菜单项组成。常见的结构如下:
- <nav>
- <ul>
- <li class=”dropdown”>
- <span>产品</span>
- <ul class=”submenu”>
- <li><a href=”#”>产品一</a></li>
- <li><a href=”#”>产品二</a></li>
- </ul>
- </li>
- </ul>
- </nav>
使用CSS定位控制子菜单位置
子菜单需要脱离文档流并相对于父元素定位。通过 position: relative 和 position: absolute 配合实现精准布局。
给父级菜单设置相对定位,确保子菜单以它为参考点:
立即学习“前端免费学习笔记(深入)”;
.dropdown {
position: relative;
}
子菜单默认隐藏,绝对定位在父元素下方:
.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
background: white;
border: 1px solid #ccc;
padding: 8px 0;
min-width: 150px;
}
利用:hover触发显示逻辑
当鼠标悬停在父级菜单上时,显示子菜单。使用 :hover 选择器监听状态变化:
.dropdown:hover .submenu {
display: block;
}
这样,用户将鼠标移到“产品”文字上时,.submenu 就会显示出来。移开后自动隐藏,实现简单而有效的交互。
为了提升体验,可以添加过渡动画:


