HTML中需转义、&、"、'五字符,\_通常无需转义但混用Markdown时需写\\_;短代码用加转义,多行用。

HTML 里想原样显示 、>、&、" 或下划线 _ 这类字符,不能直接敲,否则浏览器会当标签或实体解析——尤其是 _ 虽然本身不是 HTML 特殊字符,但常在代码块、路径、变量名中出现,一不留神就被 Markdown(如果混用)或 CSS(如 text-transform: lowercase)干扰。核心原则就一条:要显示什么,就得用对应转义序列或包裹方式让它“不被解释”。
哪些字符必须转义?为什么 _ 通常不用但有时要小心
HTML 有五个预定义实体必须转义,否则可能破坏结构或报错:
→zuojiankuohaophpcn(否则被当成标签起始)-
>→youjiankuohaophpcn(闭合标签或比较符时易出错) -
&→&(所有实体都以&开头,不转义会导致解析失败) -
"→"(属性值用双引号时,内部引号必须转义) -
'→'(单引号,XML 兼容需要,HTML5 可用但非必需)
_ 不在其中——它不是 HTML 特殊字符,纯文本中直接写 _ 就行。但注意两种例外场景:一是放在 或 里时,可能被 CSS 的 white-space 或 font-family 影响显示;二是混用 Markdown 渲染器(如 GitHub README),下划线会被误判为斜体语法 *text* 或 _text_,此时需用反斜杠逃逸:\_。
和 怎么选?别只图方便套一层
和 怎么选?别只图方便套一层二者都用于显示原始文本,但语义和行为不同:
立即学习“前端免费学习笔记(深入)”;
:行内元素,适合短代码片段,如函数名。它不会保留换行和多余空格,CSS 默认是document.getElementByIdwhite-space: normal。:块级元素,保留所有空白符和换行,适合多行代码、配置块。但默认字体等宽,且可能撑开容器——如果只是想让单个_或&不被解析,属于杀鸡用牛刀。
正确做法:单字符/短文本用转义实体;代码片段优先用 。例如: + 转义;多行结构化内容才上
调用
get_user_by_id(id)时,id不能含 & 符号。
实际写 HTML 时最容易踩的三个坑
不是记不住转义码,而是忽略上下文导致白忙活:
-
在属性值里忘了转义引号:比如 会断在
's处,应写成或改用双引号包裹单引号属性值(但稳妥起见仍建议转义)。- 把
当万能空格乱用:它不可折行、不参与单词间距计算,仅用于强制不换行空格。想控制文字间距请用 CSSletter-spacing,而非堆。- 复制粘贴代码时带隐藏 Unicode 字符:比如从 Word 或某些编辑器粘贴的
_实际是全角下划线(U+FF3F)或连字符(U+2013),浏览器显示异常。解决方法:粘贴后用开发者工具看 DOM,或先粘到纯文本编辑器(如 Notepad)过滤格式。真正麻烦的从来不是“怎么打出 _”,而是你不确定它此刻是普通字符、CSS 样式目标、还是 Markdown 解析器眼中的语法符号——动手前先看清楚渲染链路在哪一环生效。
- 把











