新闻中心

CSS初级项目如何制作下拉菜单_hover伪类和display控制显示

2025-11-26
浏览次数:
返回列表
答案是使用CSS的:hover伪类和display属性可创建无需J*aScript的下拉菜单。首先构建基于ul的HTML结构,通过flex布局使菜单横向排列;接着用position定位子菜单,并设display:none默认隐藏;再利用.dropdown:hover .submenu设置display:block实现悬停显示;最后可添加visibility、opacity和transition实现淡入动画,配合z-index避免遮挡问题。整个过程仅需基础CSS即可完成交互效果。

css初级项目如何制作下拉菜单_hover伪类和display控制显示

制作一个简单的下拉菜单,可以使用 CSS 的 :hover 伪类配合 display 属性来控制子菜单的显示与隐藏。这种方法不需要 J*aScript,适合 CSS 初学者练习布局和交互效果。

1. 基本 HTML 结构

下拉菜单通常基于无序列表(ul)构建,结构清晰且语义化:

<n*>
  <ul class="menu">
    <li><a href="#">首页</a></li>
    <li class="dropdown">
      <a href="#">产品</a>
      <ul class="submenu">
        <li><a href="#">产品一</a></li>
        <li><a href="#">产品二</a></li>
        <li><a href="#">产品三</a></li>
      </ul>
    </li>
    <li><a href="#">关于</a></li>
    <li><a href="#">联系</a></li>
  </ul>
</n*>

2. 基础样式设置

先给菜单添加基本样式,使其横向排列,并隐藏子菜单:

.menu {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #333;
  display: flex;
}
<p>.menu > li {
position: relative;
}</p><p>.menu a {
display: block;
color: #fff;
text-decoration: none;
padding: 15px 20px;
}</p><p>.menu a:hover {
background: #555;
}</p>

3. 使用 :hover 和 display 控制下拉菜单

关键点是默认隐藏 .submenu,当鼠标悬停在父级 li 上时显示它:

语鲸 语鲸

AI智能阅读辅助工具

语鲸 314 查看详情 语鲸
.submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  position: absolute;
  top: 100%;
  left: 0;
  background: #444;
  width: 150px;
  display: none; /* 默认隐藏 */
}
<p>.dropdown:hover .submenu {
display: block; /<em> 悬停时显示 </em>/
}</p>

4. 可选:添加一点过渡动画

虽然 display 不能直接加过渡动画,但你可以结合 opacity 和 visibility 实现淡入淡出效果(进阶技巧):

.submenu {
  ...
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease;
}
<p>.dropdown:hover .submenu {
visibility: visible;
opacity: 1;
display: block;
}</p>

注意:如果使用 visibility + opacity,仍需设置 display: block 来确保元素占据空间并可点击。

基本上就这些。通过简单的 :hover 和 display 控制,就能实现一个干净实用的下拉菜单,适合静态网站或学习项目。不复杂但容易忽略细节,比如定位和层级,建议加上 z-index 防止被其他元素遮挡。

以上就是CSS初级项目如何制作下拉菜单_hover伪类和display控制显示的详细内容,更多请关注其它相关文章!


# 使其  # 硚口区品牌推广营销招聘  # 汉沽餐饮网站建设  # 站内关键词排名查询  # 鄂州外包网站优化价格  # SEO入门画画图片  # 巩义网站建设工程管理  # 项城网站推广推荐  # 锡林郭勒盟网站建设  # 湘潭百度网站优化排名  # 石龙镇网络推广招聘网站  # 可以使用  # 解决问题  # css  # 中文网  # 相关文章  # 不需要  # 就能  # 进阶  # 不均匀  # 中不  # 排列  # flex布局  # html  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: QQ邮箱网页版入口 QQ邮箱官方邮箱登录通道  PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误  内存疯狂猛猛涨价:主板销量直接腰斩!  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  深入理解Go语言中的指针类型:以*string为例  必由学网页版入口 必由学官方平台直接访问  正确连接J*aScript到HTML实现可点击图片与自定义事件处理  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  AngularJS $http POST请求数据传递与Go后端接收实践  sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践  ArrayList与LinkedList核心操作的Big-O复杂度分析  Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  J*aScript教程:根据元素文本内容动态设置背景色  整合Supabase认证与Django模型:跨模式迁移的解决方案  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  百度网盘网页版入口 百度网盘网页版官方登录网址  Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】  Golang指针如何与map组合使用_Golang map指针组合实践  sublime怎么设置启动时打开的窗口_sublime会话管理与热退出  Android Studio计算器C键功能异常排查与修复教程  深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  绝地鸭卫平a核爆刀流玩法攻略  HTML空白字符处理机制:渲染、DOM与编码实践  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  Win11输入法不见了怎么办_Windows11恢复语言栏显示方法  j*a toString()的覆盖  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  在Typer应用中优雅地处理和重组任意命令行参数  韩小圈电脑版在线入口_网页版免费登录地址  TikTok评论显示延迟如何处理 TikTok评论刷新优化方法  照顾宝贝2小游戏点击立即在线玩  Python类型检查:优化关联可选属性的Mypy推断策略  使用Pandas转换并合并DataFrame:多列映射至统一结构  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  PostgreSQL海量数据高效导入策略:Python与Django实践指南  composer的"require-dev"部分是用来做什么的?  拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  163邮箱登录密码 163邮箱忘记密码找回  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接 

搜索