0

0

如何用css实现简单折叠菜单

P粉602998670

P粉602998670

发布时间:2025-10-15 17:01:01

|

143人浏览过

|

来源于php中文网

原创

答案:通过CSS的:target伪类控制max-height实现折叠菜单,点击带锚点的标题触发内容显示隐藏,配合transition创建动画效果,并可用伪元素箭头指示状态。

如何用css实现简单折叠菜单

实现一个简单的折叠菜单,主要通过 CSS 控制内容的显示与隐藏,配合一些过渡动画让效果更自然。下面是一个基础但实用的实现方式。

1. HTML 结构

使用一个容器包裹菜单标题和内容,便于用 CSS 控制展开与收起:


2. 基础 CSS 样式

设置菜单外观,并默认隐藏内容:

立即学习前端免费学习笔记(深入)”;

.menu-header {
  background-color: #444;
  color: white;
  padding: 10px;
  cursor: pointer;
  font-weight: bold;
}

.menu-content { max-height: 0; overflow: hidden; background-color: #f9f9f9; transition: max-height 0.3s ease-out; }

.menu-content p { margin: 10px; }

3. 使用 :target 实现简单交互

利用锚点链接和 :target 伪类实现无 JavaScript 的折叠效果:

有一导航
有一导航

有一导航延续了美国Groupon网站一贯的简约风格和购物流程,致力于打造中国本土化的精品消费限时团购网站,您会发现网站的页面非常简单,简单到每天只有一款产品。 产品通常不是实物,而是生活消费领域的各类服务型产品,比如服装、饰品、数码、化妆品、培训、健身等各类商品,用户只需在线购买,三分钟就可轻松买到超低折扣的团购产品!

下载
/* 当 menu-content 被 target 时展开 */
.menu-content:target {
  max-height: 200px; /* 根据内容调整高度 */
}

修改 HTML 中的标题为可点击链接:


4. 可选:添加箭头图标指示状态

可以用伪元素做一个小三角,点击时翻转表示展开或收起:

.menu-header::after {
  content: " ▼";
  font-size: 0.8em;
  transition: transform 0.3s;
}

.menu-header:hover::after { opacity: 0.7; }

/ 收起状态不旋转,展开时向下箭头变向上 / .menu-content:target ~ .menu-header::after { transform: rotate(180deg); }

基本上就这些。这种方式无需 JavaScript,适合静态页面或对性能要求较高的场景。如果需要多个菜单项,复制结构并确保每个 id 唯一即可。虽然功能简单,但足够应对很多基础需求。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
css3transition
css3transition

css3transition属性用于指定如何从一个CSS样式过渡到另一个CSS样式,本专题为大家提供transition相关的文章、相关下载和相关课程,大家可以免费体验。

231

2023.06.27

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

0

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

0

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

0

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

19

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

16

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

17

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

2

2026.01.29

热门下载

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

精品课程

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

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 25.1万人学习

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

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