0

0

如何制作简单的导航菜单_列表与样式组合方法【教程】

星夢妙者

星夢妙者

发布时间:2026-02-09 13:08:03

|

457人浏览过

|

来源于php中文网

原创

纯CSS导航菜单需语义化HTML(用)、flex布局、:hover实现下拉、后端或路由动态添加.active类;移动端需JS处理点击,CSS无法自动识别当前页。

如何制作简单的导航菜单_列表与样式组合方法【教程】

纯 CSS 实现的导航菜单,不需要 JavaScript 就能完成基础交互(如悬停展开、当前页高亮),关键在 HTML 结构语义化 + :hover.active 类的合理使用。

HTML 必须用 包裹
    ,别用
    模拟

    语义错误会导致可访问性问题,屏幕阅读器无法识别导航区域。浏览器默认对

    有角色标注,
      天然表达列表关系。

      • ❌(失去语义、键盘焦点混乱、SEO 不友好)

      display: flex 是横向菜单最稳的布局方式,慎用 float

      float 已过时,清除浮动易出错,响应式下难控制;flex 天然支持等宽/居中/自动换行,且兼容到 IE10+(加 -ms- 前缀可覆盖大部分旧项目)。

      nav ul {
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
      }
      nav li {
        margin-right: 1rem;
      }
      nav a {
        text-decoration: none;
        padding: 0.5rem 1rem;
      }
      • 要让菜单项垂直居中:给 nav ulalign-items: center
      • 移动端需折行:改用 flex-wrap: wrap,再配合媒体查询限制最大宽度
      • IE10/11 中 flex 子项默认不收缩,需显式设 flex-shrink: 0

      下拉菜单靠 :hover + 子
        定位,不用 JS 也能生效

        二级菜单本质是嵌套

          ,初始隐藏,父
        • 悬停时显示。关键是定位方式和过渡控制。

          Getimg.ai
          Getimg.ai

          getimg.ai是一套神奇的ai工具。生成大规模的原始图像

          下载
            • 必须放在对应
            • 内部,否则 :hover 断开后菜单闪退
            • position: absolute + top: 100% 对齐父项底部,避免遮挡或偏移
            • opacity: 0; visibility: hidden; 配合 transition 实现淡入,比 display: none 更平滑(后者无法过渡)
            • 移动端点击触发需额外处理——:hover 在触摸设备上不可靠,得靠 JS 切换 .show

            .active 类必须由后端或路由系统动态写入,CSS 无法自动判断当前页

            CSS 没有“当前 URL 匹配”能力,:target 只适用于锚点,:is(:local-link) 兼容性极差(仅 Safari 15.4+)。所有「高亮当前菜单项」逻辑必须由运行时决定。

            • 服务端渲染(如 PHP/Node.js):输出 HTML 前比对 request.url,给对应 class="active"
            • 前端路由(如 React Router):用 useMatch()NavLink 组件自动添加 active
            • 纯静态页?只能手动维护——每个页面单独写死一个 .active,没捷径

            最常被忽略的是触屏设备下的下拉交互逻辑,以及 .active 类的生成时机。这两个点一旦漏掉,菜单在手机上点不开、当前页标不中,用户第一印象就坏了。

          • 热门AI工具

            更多
            DeepSeek
            DeepSeek

            幻方量化公司旗下的开源大模型平台

            豆包大模型
            豆包大模型

            字节跳动自主研发的一系列大型语言模型

            通义千问
            通义千问

            阿里巴巴推出的全能AI助手

            腾讯元宝
            腾讯元宝

            腾讯混元平台推出的AI助手

            文心一言
            文心一言

            文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

            讯飞写作
            讯飞写作

            基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

            即梦AI
            即梦AI

            一站式AI创作平台,免费AI图片和视频生成。

            ChatGPT
            ChatGPT

            最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

            相关专题

            更多
            css中float用法
            css中float用法

            css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

            582

            2024.04.28

            C++中int、float和double的区别
            C++中int、float和double的区别

            本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

            104

            2025.10.23

            class在c语言中的意思
            class在c语言中的意思

            在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

            556

            2024.01.03

            python中class的含义
            python中class的含义

            本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

            18

            2025.12.06

            js正则表达式
            js正则表达式

            php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

            517

            2023.06.20

            js获取当前时间
            js获取当前时间

            JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

            348

            2023.07.28

            js 字符串转数组
            js 字符串转数组

            js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

            444

            2023.08.03

            js是什么意思
            js是什么意思

            JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

            5511

            2023.08.17

            Golang处理数据库错误教程合集
            Golang处理数据库错误教程合集

            本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

            98

            2026.02.06

            热门下载

            更多
            网站特效
            /
            网站源码
            /
            网站素材
            /
            前端模板

            精品课程

            更多
            相关推荐
            /
            热门推荐
            /
            最新课程
            PHP课程
            PHP课程

            共137课时 | 11.3万人学习

            JavaScript ES5基础线上课程教学
            JavaScript ES5基础线上课程教学

            共6课时 | 11.2万人学习

            PHP新手语法线上课程教学
            PHP新手语法线上课程教学

            共13课时 | 0.9万人学习

            关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
            php中文网:公益在线php培训,帮助PHP学习者快速成长!
            关注服务号 技术交流群
            PHP中文网订阅号
            每天精选资源文章推送

            Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号