code标签内需对、&等字符做html实体转义,如、&,多行代码应嵌套pre标签,动态插入时须在插入dom前完成转义。

code 标签里直接写 会出问题
code 标签本身不自动转义内容,它只是语义上表示「一段计算机代码」。如果在 标签内直接写 <code>5 y,浏览器仍会把 当作标签起始/结束符解析——哪怕它们在
里面。结果就是 DOM 截断、文本丢失,甚至意外闭合外层标签。
必须对 做 HTML 实体转义
在 code 标签内部,所有出现的 都得替换成对应实体:
替代 <code>-
>替代> - 别用
<或>—— 大小写敏感,<无效 - 也别漏掉分号:
<不合法,W3C 标准要求必须带分号
正确示例:<div>hello</div>,渲染后显示为 <div>hello</div>。
配合 使用更稳妥
单行代码用 code 足够;但含多行、缩进或混合符号(如 &、")时,建议嵌套在 pre 中:
function test() {
if (a d) {
return "x
<p>注意:<code>&&</code> 中的 <code>&</code> 也要转义,否则会被当成实体起始符;<code>pre</code> 保证换行和空格原样保留,<code>code</code> 提供语义标记。</p>
<h3>动态插入时最容易漏掉转义</h3>
<p>前端 JS 拼接 HTML 字符串或后端模板输出时,常见错误是只对用户输入做一次转义,却忘了 <code>code</code> 内容属于「HTML 上下文中的文本内容」,需完整转义:</p>
- 错误:
el.innerHTML = '<code>' + userInput + ''(未处理和 <code>>) - 正确:先用
textContent插入(不解析 HTML),或手动替换→ <code>、<code>>→> - 后端 PHP 示例:
htmlspecialchars($str, ENT_NOQUOTES, 'UTF-8'),它默认转义&、、<code>>
真正容易被忽略的是:转义必须发生在「最终插入 DOM 前一刻」。早了可能被模板引擎二次编码,晚了脚本已执行。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











