&…">
当前位置:首页 > CSS

css制作二级菜单

2026-02-26 21:50:46CSS

使用纯CSS制作二级菜单

通过CSS的:hover伪类和子元素选择器实现二级菜单的显示与隐藏。以下是一个典型的结构和样式示例:

HTML结构

<ul class="menu">
  <li>首页</li>
  <li>产品
    <ul class="submenu">
      <li>网页设计</li>
      <li>移动应用</li>
    </ul>
  </li>
  <li>服务
    <ul class="submenu">
      <li>咨询</li>
      <li>培训</li>
    </ul>
  </li>
</ul>

CSS样式

.menu {
  display: flex;
  list-style: none;
  background: #333;
  padding: 0;
}
.menu li {
  position: relative;
  padding: 15px 20px;
  color: white;
}
.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #444;
  padding: 0;
  min-width: 150px;
}
.menu li:hover .submenu {
  display: block;
}
.submenu li {
  padding: 10px 20px;
  white-space: nowrap;
}

添加过渡动画效果

通过CSS过渡属性让二级菜单平滑出现:

css制作二级菜单

.submenu {
  opacity: 0;
  transform: translateY(-10px);
  transition: all 0.3s ease;
  pointer-events: none;
}
.menu li:hover .submenu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

响应式设计适配

针对移动设备添加媒体查询:

@media (max-width: 768px) {
  .menu {
    flex-direction: column;
  }
  .submenu {
    position: static;
    width: 100%;
  }
}

多级嵌套菜单实现

支持三级及以上菜单的嵌套结构:

css制作二级菜单

.submenu .submenu {
  left: 100%;
  top: 0;
}

浏览器兼容性处理

添加针对旧版浏览器的备用方案:

.menu li {
  *display: inline-block; /* IE7 hack */
  zoom: 1; /* IE6/7 hasLayout触发 */
}

关键点说明:

  • 使用position: relativeposition: absolute建立定位上下文
  • display: none初始隐藏二级菜单
  • :hover伪类触发显示状态变化
  • top: 100%确保二级菜单紧贴主菜单下方
  • min-width防止内容过窄导致布局问题

通过调整z-index、box-shadow等属性可以进一步增强视觉效果:

.submenu {
  z-index: 100;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}

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

相关文章

css导航栏制作

css导航栏制作

CSS导航栏制作方法 水平导航栏 使用display: inline-block或flexbox布局创建水平导航栏。设置背景色、间距和悬停效果增强视觉体验。 <nav class="horiz…

表格制作css

表格制作css

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

页脚制作 css

页脚制作 css

页脚基础样式 使用CSS为页脚设置基础样式,通常包括背景色、文字颜色、内边距等属性。以下是一个常见示例: footer { background-color: #333; color: wh…

vue菜单tab实现

vue菜单tab实现

Vue 菜单 Tab 实现方法 使用动态组件切换内容 通过 Vue 的 component 动态组件结合 v-for 渲染菜单项,点击时切换显示内容: <template> <…

淘宝css导航栏制作

淘宝css导航栏制作

淘宝CSS导航栏制作 制作类似淘宝的导航栏需要关注几个关键点:结构清晰、响应式设计、悬停效果以及图标使用。以下是具体实现方法: HTML结构 <div class="nav-container…

vue实现菜单管理

vue实现菜单管理

Vue 实现菜单管理方案 方案一:基于路由的动态菜单 通过 Vue Router 的路由配置自动生成菜单结构,适用于权限管理系统。在路由元信息(meta)中添加菜单相关配置: const route…