当前位置:首页 > CSS

用css制作下拉菜单

2026-01-08 20:18:54CSS

使用纯CSS制作下拉菜单

HTML结构

基础的下拉菜单需要嵌套的HTML结构,通常使用<ul><li>标签实现层级关系:

<div class="dropdown">
  <button class="dropdown-btn">菜单</button>
  <ul class="dropdown-content">
    <li><a href="#">选项1</a></li>
    <li><a href="#">选项2</a></li>
    <li><a href="#">选项3</a></li>
  </ul>
</div>

CSS样式

通过CSS控制下拉菜单的显示与隐藏:

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-btn {
  background: #3498db;
  color: white;
  padding: 10px 15px;
  border: none;
  cursor: pointer;
}

.dropdown-content {
  position: absolute;
  background: #f9f9f9;
  min-width: 160px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.dropdown:hover .dropdown-content {
  opacity: 1;
  visibility: visible;
}

.dropdown-content li {
  padding: 12px 16px;
  border-bottom: 1px solid #ddd;
}

.dropdown-content li:hover {
  background: #f1f1f1;
}

关键实现技巧

定位方式

使用position: absolute使下拉内容脱离文档流,配合position: relative的父容器实现精确定位。

显示/隐藏控制

通过opacityvisibility属性实现平滑过渡效果,比直接使用display: none更适合动画效果。

悬停触发

利用:hover伪类实现鼠标悬停时显示菜单,无需JavaScript。

响应式适配

移动端优化

添加媒体查询适应小屏幕设备:

@media (max-width: 768px) {
  .dropdown-content {
    width: 100%;
    left: 0;
  }
}

无障碍支持

为按钮添加ARIA属性提升可访问性:

<button class="dropdown-btn" aria-haspopup="true" aria-expanded="false">
  菜单
</button>

进阶变体

多级嵌套菜单

通过CSS选择器实现多级菜单:

.dropdown-content .dropdown-content {
  left: 100%;
  top: 0;
}

点击触发替代方案

使用:focus-within实现点击触发效果:

用css制作下拉菜单

.dropdown:focus-within .dropdown-content {
  opacity: 1;
  visibility: visible;
}

标签: 菜单css
分享给朋友:

相关文章

vue实现菜单定位

vue实现菜单定位

实现菜单定位的方法 在Vue中实现菜单定位功能,可以通过监听滚动事件或使用Intersection Observer API来判断当前显示的菜单项,并高亮对应的导航链接。以下是几种常见的实现方式:…

css表单制作

css表单制作

基础表单结构 使用HTML创建表单的基本结构,包含<form>标签及输入字段。表单通常需要action(提交地址)和method(提交方法)属性。 <form action="/s…

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

css个人简历制作两页

css个人简历制作两页

使用CSS制作两页个人简历 创建两页的个人简历需要合理布局和分页控制,以下是实现方法: HTML基础结构 <!DOCTYPE html> <html lang="zh-CN">…

css jquery

css jquery

CSS 与 jQuery 的基础用法 CSS(层叠样式表)用于控制网页的样式和布局,而 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

vue实现菜单定位

vue实现菜单定位

Vue实现菜单定位的方法 使用scrollIntoView方法 通过监听菜单点击事件,获取目标元素的DOM节点,调用scrollIntoView方法实现平滑滚动定位。需配合ref获取DOM节点。 m…