HTML5原生可实现无障碍、打印友好、SEO友好的可折叠模块,无需JavaScript;必须为首个子元素,禁用div包裹或嵌套标题;默认展开用open属性,箭头仅Chrome/Firefox支持::marker定制。

用 和 实现原生可折叠模块
不用写一行 JavaScript,HTML5 原生就支持可折叠内容—— 是语义化容器, 是默认显示的标题行,点击即展开/收起。浏览器默认带箭头图标和过渡行为,兼容 Chrome、Firefox、Edge(Safari 从 12.1 起完全支持),打印时默认展开,适合简历中“项目细节”“技术栈说明”这类非核心但需按需查看的内容。
常见错误是套错层级或忽略可访问性: 手写 JS 切换 把可折叠能力自然融入语义化简历结构里,不是为了炫技,而是解决信息密度与可读性的矛盾。比如教育经历中“课程设计”、工作经历中“技术难点”、技能栏中“熟练度说明”,都适合折叠。 Chrome “另存为 PDF” 默认导出**展开态**,这是合理行为——招聘方看 PDF 不该被交互状态干扰。但如果你发现某段内容在 PDF 里被截断,问题通常不在折叠逻辑,而在父容器高度或分页控制。 最常被忽略的一点:本地预览 PDF 时,务必用 Chrome 的 Print Preview 模式(Ctrl+Shift+P → 输入 “Rendering” → 选 “Emulate CSS media type: print”),而不是直接点“另存为”,否则看不到真实分页效果。 必须是 的**第一个子元素**;不能用 ;里面别塞 等标题(会破坏大纲层级)。
<details><summary>React 全栈开发项目</summary><p>基于 Next.js + Node.js 构建,支持 SSR 和静态导出…</p>
</details>
open 属性:::marker(Chrome/Firefox 支持),Safari 目前不支持伪元素定制为什么不用
onclick + display: none 手动控制display 或 class 看似灵活,但在简历场景下反而容易翻车:
aria-expanded 和 aria-controls 得手动维护,漏掉一个就影响求职者被 ATS(招聘系统)识别display: none 的内容直接丢弃,导致关键项目经历“凭空蒸发” 是原生双态控件,无此风险折叠模块嵌入简历结构的实操要点
本身不该被折叠,那是简历逻辑骨架;折叠的是其内部的补充描述 前加统一 icon(如 ▶ / ▼),可用 background-image 配合 padding-left,避免用 Unicode 字符(复制粘贴易乱码) 文字过长会折行,建议限制宽度或用 white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
内所有文本,无需额外标注导出 PDF 时折叠状态怎么处理
height: 100vh 或 min-height 类样式,PDF 渲染器对视口单位支持不稳定@media print 中强制重置:@media print {
details { display: block; }
summary { display: list-item; }
}
加 page-break-inside: avoid;,确保整个模块落在同一页
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











