samp标签专用于标记程序真实运行后用户在终端或控制台原样看到的输出结果,必须与code(代码)、kbd(输入)严格区分,多行输出需用pre包裹samp,不可嵌套反序或滥用。

直接用 <code> 包代码、 包输出,二者不嵌套,各自语义清晰——这是最稳妥的写法。
什么时候必须分开用 code 和 samp
当你在文档中模拟一次终端交互,比如运行命令后看结果,就必须拆开:用户输入/代码是
,程序吐出来的东西是 <samp>。混在一起会破坏可访问性,屏幕阅读器可能把错误信息当成可执行代码读出来。 <ul><li>✅ 正确:<code>curl -X GET /api/status</code> </li></ul></samp>→ {"status":"ok","uptime":12345}
curl -X GET /api/status(里塞了 <samp>,HTML 验证失败)</samp>
samp 里能不能换行?怎么保留格式
是内联元素,本身不保留换行或缩进。如果输出含多行(比如堆栈跟踪、ls -l 结果),必须用 <pre class="brush:php;toolbar:false;"> 包裹 <samp>,但注意顺序只能是 <pre class="brush:php;toolbar:false;"><samp>…</samp></pre>,不能反过来,也不能在 <samp> 里再塞 <pre class="brush:php;toolbar:false;">。</pre></samp></samp></pre>
- ✅ 正确:
<samp>Traceback (most recent call last):<br> File "main.py", line 4, in <module><br> print(x)<br>NameError: name 'x' is not defined</module></samp>
- ❌ 错误:
…
(W3C 明确禁止 包含块级元素) - ⚠️ 注意:旧版 Safari 对
<samp> 的等宽字体继承不稳定,建议加 style="font-family: monospace;" 显式声明</samp>
API 响应体该用 samp 还是 pre+code
纯文本响应(如 shell 脚本输出、日志行)可用 ;但 JSON/XML/HTML 等结构化响应体,哪怕只是片段,也必须用 ,因为它们本质是“可解析的数据格式”,不是“程序终端上打印出来的那几行字”。
- ✅ File not found: config.yaml(shell 报错,纯文本输出)
- ✅
<pre class="brush:php;toolbar:false;">{"error": "timeout"}(API 响应体,需语法高亮与结构识别) - ❌ {"error": "timeout"}(语义错误:这不是终端输出,是数据载荷)
- ⚠️ 注意: 中若含 、&,必须实体化为 、&,否则被浏览器解析为标签
最容易被忽略的是上下文绑定—— 单独出现毫无意义。它前面必须有自然语言说明“这是谁的输出”,比如“执行 npm run build 后得到:”,否则辅助技术无法理解其来源和用途。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











