答案:使用html5的details和summary标签可创建无需javaScript的折叠面板。details定义可展开区域,summary为标题,点击自动切换内容显示。添加open属性使面板默认展开。多个details独立控制,适用于FAQ等场景。现代浏览器支持,可通过css美化样式,语义清晰且利于可访问性。

使用html5的 details 标签可以轻松实现折叠面板效果,无需javascript或css框架,语义清晰且原生支持可访问性。
基本语法与结构
details 标签定义一个可展开或收起的区域,summary 标签用于指定标题。点击 summary 时,details 内容会自动展开或隐藏。
<details>
<summary>点击展开说明</summary>
<p>这里是被隐藏的内容,可以是文字、图片或其他html元素。</p>
</details>
默认展开设置
添加 open 属性可以让面板默认处于展开状态。
<details open>
<summary>默认展开的面板</summary>
<p>页面加载时内容可见。</p>
</details>
多个折叠面板独立控制
多个 details 标签天然支持独立展开与收起,互不影响,适合常见FAQ场景。
立即学习“前端免费学习笔记(深入)”;
<details>
<summary>什么是HTML5?</summary>
<p>HTML5是第五代超文本标记语言,增强了多媒体、图形和交互功能。</p>
</details>
<details>
<summary>details标签兼容性如何?</summary>
<p>现代浏览器均支持,IE不支持,建议在移动端和现代项目中使用。</p>
</details>
样式美化(可选)
虽然原生功能已足够,但可通过CSS调整外观,如去除默认箭头、修改字体或添加边框。
<style>
details > summary {
cursor: pointer;
font-weight: bold;
list-style: none;
}
details[open] {
border: 1px solid #ccc;
padding: 10px;
border-radius: 4px;
}
</style>
基本上就这些。details + summary 组合简单高效,特别适合帮助提示、问答列表或配置项折叠,语义明确又省代码。不复杂但容易忽略。


