最稳妥做法是直接修改index.htm中的结构,用定义问题、承载回答,语义清晰且兼容性强;务必保存为UTF-8编码、.htm后缀,并强制刷新验证。

直接改 index.html 里的 <dl></dl> 结构最稳妥
HTM 网页(注意是 .htm,不是 .html)里放常见问题问答列表,最常用也最兼容的做法是用 HTML 原生的 <dl></dl>(definition list)语义标签。它天然适合“问题+回答”这种一对一对的结构,比硬套 <div> 或 <code><ul></ul> 更清晰、更易维护。
常见错误是把每个问答写成独立的 <p></p> 或 <h3></h3>+<p></p> 组合——这样既没语义,搜索爬虫也难识别,后期加折叠/跳转功能也会多写一堆 JS 判断。
-
<dt></dt>包问题(definition term),必须是短句,别换行、别嵌套块级元素 -
<dd></dd>包回答(definition description),可以放段落、列表甚至图片,但得紧跟在对应<dt></dt>后面 - 多个
<dd></dd>可以对应一个<dt></dt>(比如一个问题有多个分点回答) - 别在
<dl></dl>里插<p></p>包裹<dt></dt>或<dd></dd>,会破坏语义和默认样式
示例片段:
<dl> <dt>为什么打开页面是白屏?</dt> <dd>检查文件扩展名是不是 <code>.htm</code> 而不是 <code>.txt</code>;右键“查看源代码”确认有没有漏掉 <code></dd></code> 或写错 <code><dt></code> 标签。</dd> <dt>能添加图片吗?</dt> <dd>可以,在 <code><dd></code> 里直接写 <code><img src="qna-pic.jpg" alt="示意图"></code>,确保图片和 HTM 文件在同一文件夹。</dd> </dl>
用记事本编辑时,.htm 文件名和编码必须对
很多新手双击打开 HTM 文件看到乱码或空白,根本不是代码写错了,而是保存时出了问题。
- 记事本默认保存为
ANSI编码,中文会变问号——务必点“另存为”,在右下角把“编码”改成UTF-8 - 文件名必须带
.htm后缀,不能是常见问题.txt或常见问题.htm.txt(Windows 默认隐藏已知后缀,要打开文件夹选项勾选“显示文件扩展名”) - 如果用的是 macOS 的 TextEdit,新建后先点菜单栏“格式 → 转换为纯文本”,再保存,否则会存成富文本格式,浏览器打不开
验证是否成功:用 Chrome 打开该文件,按 F12 打开开发者工具,切换到 Console 标签页,没有报 Failed to load resource 就说明路径和编码基本没问题。
加展开/收起效果,不用框架只用原生 details/summary
想让问答列表默认折叠、点击才展开?不必引入 jQuery 或写一堆 JS。HTML5 原生的 <details></details> 和 <summary></summary> 就够用,所有现代浏览器都支持(Chrome 12+、Firefox 49+、Edge 79+、Safari 12.1+)。
-
<summary></summary>里放问题,它自带小箭头图标,点击自动切换状态 -
<details></details>的其余内容就是回答,初始隐藏,点开才显示 - 不支持老 IE,但如果你的 HTM 是给家长/学生本地双击打开用的,IE 基本可忽略
- 想默认展开?加
open属性:<details open></details>
示例:
<details> <summary>怎么复制粘贴就能运行?</summary> <p>把代码全选 → Ctrl+V 粘贴进记事本 → “另存为”时选“所有文件”,文件名填 <code>faq.htm</code>,编码选 <code>UTF-8</code>,点保存。双击就能在浏览器打开。</p> </details>
修改后页面不更新?强制刷新 + 检查缓存路径
改完保存,双击打开还是旧内容——大概率是浏览器缓存了,或者你其实打开的是另一个同名文件。
- 别只点浏览器地址栏回车,按
Ctrl+F5(Windows)或Cmd+Shift+R(Mac)强制刷新,绕过缓存 - 检查地址栏路径:是不是
file:///C:/Users/xxx/Desktop/faq.htm,而不是file:///C:/Users/xxx/Desktop/faq.html?大小写和后缀差一个字母都会加载错文件 - 右键网页 → “查看页面源代码”,确认看到的是你刚保存的新内容,不是旧版本
- 如果用 VS Code 等编辑器,保存后别忘了关闭再重开预览页,有些编辑器内置预览服务不会自动热更新 HTM 文件
真正容易被忽略的点:HTM 文件一旦被浏览器缓存,哪怕你删了重写一个同名文件,只要 URL 没变,它可能还在读内存里的旧副本。强制刷新不是“多此一举”,是每次改完必做的动作。


















