<p>HTML注释唯一合法写法是<!-- -->,其他如//、/ /均无效且会原样输出;禁用--或-->组合,否则解析器提前终止注释导致DOM错乱;不可用于<script>/<style>内部,仅对HTML解析器生效。</p>

HTML 注释只有一种合法写法:<!-- --> ,其他形式如 // 或 /* */ 不会被解析,反而可能原样输出到页面、破坏结构或引发解析错误。
注释里为什么不能出现 -- 或 >
浏览器解析器只要在 <!-- 后遇到连续两个短横线 --,就立刻终止注释——不管后面有没有 -->。这不是高亮问题,是真实 DOM 解析行为。
-
<!-- 配置开关: --enable-logging -->→ 实际只注释了配置开关:,后面enable-logging -->会作为普通文本渲染出来 -
<!-- 这里写了 > 符号 -->看似安全,但若写成<!-- 按钮-->(-->连写),就会被当成结束标记,导致提前闭合 - 要写英文双短横,可用
–(en dash)或—(em dash)代替;要写大于号,确保它不紧贴--,比如写成-- >或加空格隔开
<script></script> 和 <style></style> 标签内部能不能用 <!-- --> 注释
完全不能。现代所有浏览器(Chrome、Firefox、Safari、Edge)都原生支持 <script></script> 和 <style></style>,外层加 HTML 注释纯属过时写法,且极易出错。
-
<script><!-- console.log("test"); // --></script>→ 浏览器把<!--当作注释起点,直到遇到第一个-->才结束,而这个-->很可能藏在 JS 字符串或正则里,结果整段脚本被跳过 - JS 内部该用
//或/* */;CSS 内部该用/* */;HTML 注释对它们完全无效 - 想临时屏蔽整个脚本块?正确做法是把整个
<script></script>标签包进一对<!-- -->里:<!-- <script>alert(1);</script> -->
哪些位置绝对不能写 HTML 注释
注释不是万能胶,插错地方等于删代码。最常踩坑的是这几处:
立即学习“前端免费学习笔记(深入)”;
- 放在
<!DOCTYPE html>前面 → 某些旧版 IE 会直接触发怪异模式 - 写在标签内部,比如
<div title="<!-- 错!-->foo">→ 属性值里的<!--会让解析器进入注释状态,后续内容可能被吞掉 - 嵌套使用:
<!-- <!-- 内层 --> 外层 -->→ 第一个-->就关闭注释,后面全乱 - 放在
<![CDATA[...]]>区块里 → 解析器行为不可控,优先用 JS/CSS 控制显隐
团队协作中怎么写才不容易翻车
注释不是写给自己看的,是留给下一个改它的人看的。重点不是“这是什么”,而是“为什么这么写”和“动这里要注意什么”。
- 说明作用域和条件逻辑:
<!-- sidebar: only shown on desktop, hidden via .sidebar-mobile-only class --> - 标注依赖项:
<!-- requires data-user-id attr on <body> --> - 提示样式边界:
<!-- this div must stay outside .container for full-width bg --> - 禁用区域加警告:
<!-- DO NOT REMOVE: tracking pixel wrapper --> - 注释必须和所描述代码同缩进、换行紧贴上方,禁止内联(如
<div><!-- card -->content</div>)
真正麻烦的不是语法本身,而是有人把注释当“临时删除”用,上线后忘了清理,又不敢动——因为不知道那段注释里有没有藏着还没合并的分支逻辑,或者是否已被其他模块悄悄依赖。



















