热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实现CSS伸缩导航菜单

创建一个响应式的多级导航菜单是前端开发中的常见任务。本文详细介绍如何使用CSS实现一个横向一级菜单和纵向子菜单的结构,确保在不同浏览器和屏幕尺寸下都能正常工作。

为了确保导航菜单在各种浏览器中表现一致且美观,使用 CSS 实现一个多层次的伸缩菜单是一个既简单又细致的任务。本文提供了一个完整的示例代码,方便开发者参考和复用。



此菜单设计为一级菜单横向排列,而其他子菜单则垂直显示。理论上,这种结构可以扩展到无限层级,只要屏幕足够大即可。



CSS 代码



* {
margin: 0;
padding: 0;
} /* 消除默认间距,确保子菜单对齐 */

.main {
margin: 0 auto;
width: 1024px;
} /* 导航栏水平居中 */

.nav {
height: 30px;
position: relative;
z-index: 100;
} /* 固定高度并防止被其他元素遮挡 */

.nav * {
height: 30px;
} /* 确保子菜单弹出时不干扰其他内容 */

.nav ul {
list-style: none;
} /* 取消列表样式 */

.nav > ul > li {
float: left;
width: 120px;
} /* 一级菜单横向排列,宽度可自适应但保留以防浏览器兼容问题 */

.nav > ul > li > ul > li {
position: relative;
top: -30px;
left: 120px;
} /* 子菜单定位在上级菜单项右侧 */

.nav li ul {
display: none;
} /* 默认隐藏子菜单 */

.nav li:hover > ul {
display: block;
} /* 鼠标悬停时显示子菜单 */

.nav a {
display: block;
width: 120px;
height: 30px;
line-height: 30px;
background: #c0c0c0;
} /* 确保链接占据整个菜单项并居中文本 */

.nav a:hover {
background: #ccc;
} /* 鼠标悬停时改变背景颜色 */


HTML 代码





推荐阅读
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 本文介绍如何通过 JavaScript 实现一个基于鼠标坐标的 Tooltip 弹出层,详细解释了如何获取窗口和文档的尺寸及滚动位置,并优化了代码结构。 ... [详细]
  • 本文介绍了 Winter-1-C A + B II 问题的详细解题思路和测试数据。该问题要求计算两个大整数的和,并输出结果。我们将深入探讨如何处理大整数运算,确保在给定的时间和内存限制下正确求解。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 开发笔记:2020 BJDCTF Re encode
    开发笔记:2020 BJDCTF Re encode ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
author-avatar
陌-天佑_807
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有