使用details和summary标签可创建原生折叠区域,默认收起,添加open属性则默认展开,支持多面板独立操作,适用于FAQ等场景,语义清晰且可自定义样式。

想在网页中添加一个可以点击展开或收起的折叠内容区域?html 的 details 标签就是为此设计的,无需 JavaScript 或 css 框架,原生支持,简单高效。
details 和 summary 标签的基本用法
details 标签定义一个可折叠的区域,默认是收起状态。它通常和 summary 标签配合使用,summary 作为标题栏,用户点击后展开内容。
// 示例:基础折叠面板
<details>
   <summary>点击查看说明</summary>
   <p>这里是被隐藏的内容,点击标题后会显示出来。</p>
 </details>
浏览器中显示为一行带箭头的标题,点击后内容展开,再次点击收起。
默认展开的折叠面板
如果希望折叠面板初始状态是展开的,给 details 标签加上 open 属性即可。
立即学习“前端免费学习笔记(深入)”;
// 示例:默认展开
<details open>
   <summary>注意事项</summary>
   <p>这条信息很重要,所以默认展示。</p>
 </details>
嵌套多个折叠面板
可以在页面中使用多个 details 区域,彼此独立,互不影响。
<details>
   <summary>章节一</summary>
   <p>这是第一章的内容。</p>
 </details>
 <details>
   <summary>章节二</summary>
   <p>这是第二章的内容。</p>
 </details>
每个都可以单独展开或关闭,适合用于 FAQ、帮助文档等场景。
样式自定义(可选)
虽然 details 和 summary 是原生组件,但你也可以用 CSS 调整外观。
比如修改 summary 的默认箭头、字体、背景等:
summary {
   cursor: pointer;
   font-weight: bold;
   background-color: #f0f0f0;
   padding: 8px;
   border-radius: 4px;
 }
注意:不同浏览器下 summary 的默认样式略有差异,建议测试兼容性。
基本上就这些。用 details + summary 实现折叠面板,语义清晰,代码简洁,适合轻量级交互需求。不复杂但容易忽略。


