html注释唯一合法语法是,不支持//、/ /等写法;浏览器仅识别该标记,中间禁止出现--或-->,且script/style标签内须用对应语言注释。

HTML注释只能用 ,其他写法全无效
浏览器只认 <!-- --> 这一种语法。写成 //、/* */、# 或 <!---(多一个短横),都会被当作普通文本渲染——页面上直接显示 <!-- 注释 -->,甚至导致标签错位、脚本不执行。
VS Code 的 Ctrl+/ 快捷键是否插入正确注释,取决于右下角语言模式是不是 html。如果当前是 javascript 模式,它会插 //;是 plaintext 模式,可能插 #——都不是 HTML 注释。
- 手敲时务必检查开头是
<!--、结尾是-->,中间不能漏字符 -
<!---或-->(少一个短横)这类“近似写法”一律解析失败 - 编辑器快捷键选中多行后直接触发,容易生成断裂结构,比如:
<!-- <div> --><!-- <p> --><!-- </div> -->→ 中间--><!--会提前终止注释
注释里不能出现 -- 或 -->,否则解析提前终止
HTML 解析器只要在 <!-- 后遇到连续两个 ASCII 短横线 --,就立刻结束注释——不管后面有没有 -->。这不是高亮异常,是真实解析行为,后续内容会被当作文本流处理,轻则文字裸露,重则 DOM 错乱、白屏。
常见翻车点:
-
<!-- 配置开关: --enable-logging -->→--在enable-logging前触发闭合,enable-logging -->变成可见文字 -
<!-- 注意 > 符号 -->→ 安全;但<!-- 错误-->示例 -->→-->提前收口,后面示例 --裸露 - 中文破折号
—(U+2014)或 en dash–(U+2013)是安全的,它们不是 ASCII 短横,不会触发闭合 - 真要写英文双短横,可用实体编码替代:
–(en dash)或—(em dash)
<script></script> 和 <style></style> 标签内部禁用 HTML 注释
现代所有浏览器(Chrome、Firefox、Safari、Edge)都原生支持 <script></script> 和 <style></style>,外层加 HTML 注释纯属过时写法,且极易出错。
<script><!-- console.log("test"); --></script> → <!-- 开始注释,但没真正闭合,JS 引擎会把后续内容当作文本处理,可能报 Uncaught SyntaxError: Unexpected token '('。
- JS 内部该用
//或/* */;CSS 内部该用/* */;HTML 注释对它们完全无效 - 想临时屏蔽整个脚本块?正确做法是把整个
<script>标签包进一对<!-- -->里:<!-- <script>alert(1);</script> --> - 绝对不要在
<script></script>或<style></style>标签内部写<!--,哪怕只是想“加个说明”
注释位置错误比内容错误更危险
注释不是万能胶,插错地方等于删代码。最常踩坑的是这几处:
<!DOCTYPE html>前面或紧贴其后换行 → 某些旧版 IE 会直接触发怪异模式- 写在标签属性值里,比如
<div title="<!-- 错! -->foo">→ 属性值里的<!--让解析器进入注释状态,后续内容可能被吞掉 - 嵌套使用:
<!-- <!-- 内层 --> 外层 -->→ 第一个-->就关闭注释,后面全乱 - 放在
区块里 → 解析器行为不可控,优先用 JS/CSS 控制显隐 - 注释本身是真实 DOM 节点(
node.nodeType === 8),大量无意义注释会增加 HTML 体积,拖慢首屏加载
注释不是写给自己看的,是留给下一个改它的人看的。重点不是“这是什么”,而是“为什么这么写”和“动这里要注意什么”。比如:<!-- sidebar: only shown on desktop, hidden via .sidebar-mobile-only class --> 比 <!-- sidebar --> 有用得多。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











