标签仅适用于单行内联代码,如函数名、命令等;多行代码必须用组合并转义html特殊字符,否则格式与语义均失效。

<code> 标签只适合单行内联代码,别硬塞多行函数或配置块——格式全丢,语义也失效。
什么时候该用 <code> 标签
它专为嵌在普通段落里的小片段设计,比如函数名、命令、HTML 标签名、CSS 属性这类「一句话能说完」的内容。
- ✅ 正确用法:
调用 <code>fetch()发起请求、把 <code>class写成btn-primary - ❌ 错误用法:
<code>function hello() {<br> console.log('hi');<br>}—— 换行和缩进被浏览器直接抹平 - ⚠️ 注意:即使内容看起来“只是文本”,只要含
、<code>>、&,就必须转义,否则可能被解析成真实标签甚至执行脚本
为什么不能用 <code> 包多行代码
浏览器对 <code> 的处理逻辑很明确:只设等宽字体,其余格式全部交给父容器。它不保留换行、不认缩进、多个空格压成一个——本质是「语义声明」,不是「排版容器」。
- Python 函数里缩进塌掉,
if和return对不齐,可读性归零 - JSON 配置缩进消失,
{ "name": "a", "age": 25 }变成一行挤在一起 - 屏幕阅读器会读作“内联代码”,但用户看到的是一团糊,辅助技术无法理解结构
<code> 必须配合哪些东西才安全
单独写 <code> 很容易翻车,尤其动态插入时。三个硬条件缺一不可:
- 所有 HTML 特殊字符必须提前转义:
→ <code><,>→>,&→& - 别依赖前端 JS 去转义——
innerHTML = '<code><div></div>' 会先解析<div>,导致 DOM 错乱 <li>若需样式统一,CSS 中显式声明字体:<code>font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;,别只靠浏览器默认 - 嵌套在
<pre class="brush:php;toolbar:false;"></pre>里?可以,但那是<pre class="brush:php;toolbar:false;"><code></code> 组合的事,<code><code></code> 自身不解决格式问题</code></pre>
容易被忽略的语义边界
很多人把 UI 文字、路径、错误提示也往 <code> 里塞,比如 <code>点击【确认】按钮 或 <code>Error: ENOENT。这些不是源代码,没有语义依据。前者该用 <button></button> 或普通文字,后者更适合 <samp></samp>(程序输出)或直接段落。
真正需要 <code> 的,只有那些「出现在代码编辑器里、会被编译/解释/执行」的最小单位:变量名、函数调用、命令、属性键、文件名——且必须是单行。











