当前位置:首页 > CSS

纯css制作下拉菜单

2026-01-08 18:13:06CSS

纯CSS下拉菜单实现方法

通过CSS的:hover伪类和display属性可以实现纯CSS下拉菜单,无需JavaScript。以下是具体实现方式:

HTML结构示例:

<nav class="dropdown">
  <ul>
    <li><a href="#">主菜单1</a>
      <ul class="submenu">
        <li><a href="#">子菜单1</a></li>
        <li><a href="#">子菜单2</a></li>
      </ul>
    </li>
    <li><a href="#">主菜单2</a>
      <ul class="submenu">
        <li><a href="#">子菜单3</a></li>
        <li><a href="#">子菜单4</a></li>
      </ul>
    </li>
  </ul>
</nav>

CSS样式代码:

.dropdown ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #333;
}

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

.dropdown a {
  display: block;
  padding: 10px 15px;
  color: white;
  text-decoration: none;
}

.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #444;
  min-width: 200px;
}

.dropdown li:hover > .submenu {
  display: block;
}

.dropdown .submenu li {
  display: block;
}

.dropdown .submenu a:hover {
  background: #555;
}

关键实现原理

利用CSS的position: absolute将子菜单定位到父菜单下方。默认状态下子菜单display: none隐藏,当鼠标悬停在父菜单项时,通过:hover伪类显示子菜单。

添加过渡动画效果

可以通过CSS过渡属性让下拉更平滑:

.submenu {
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.dropdown li:hover > .submenu {
  opacity: 1;
  visibility: visible;
}

多级下拉菜单实现

HTML结构扩展:

<li><a href="#">多级菜单</a>
  <ul class="submenu">
    <li><a href="#">二级菜单</a>
      <ul class="submenu">
        <li><a href="#">三级菜单</a></li>
      </ul>
    </li>
  </ul>
</li>

CSS调整:

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

响应式设计考虑

在移动设备上可能需要调整:

@media (max-width: 768px) {
  .dropdown > ul > li {
    display: block;
  }

  .submenu {
    position: static;
  }
}

纯css制作下拉菜单

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

相关文章

vue 实现菜单

vue 实现菜单

Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动…

vue 菜单实现

vue 菜单实现

Vue 菜单实现方法 在Vue中实现菜单功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-for动态生成菜单 通过数据驱动的方式动态渲染菜单项,适合菜单内容可能变化的场景: <t…

vue实现菜单定位

vue实现菜单定位

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

vue菜单tab实现

vue菜单tab实现

实现Vue菜单Tab的步骤 在Vue中实现菜单Tab功能,可以通过动态组件或条件渲染来实现。以下是几种常见的方法: 使用动态组件 动态组件允许根据当前选中的Tab动态切换显示内容。定义一个组件数组…

css制作

css制作

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。其基本语法由选择器和声明块组成。选择器指定要样式化的HTML元素,声明块包含一个或多个属性-值对,用花括号 {} 包裹。 select…

css制作三角形

css制作三角形

使用 border 属性创建三角形 通过设置元素的 border 属性可以实现三角形效果。原理是利用边框的交界处形成的斜边。 .triangle { width: 0; height: 0;…