html注释必须用包裹,漏感叹号、含-->、嵌套或在script/style中使用均错误;ie条件注释已失效,应改用现代兼容方案。

HTML注释必须用 包裹
浏览器只认 <!-- 开头、--> 结尾的注释,其他写法(比如 // 或 /* */)在 HTML 主体里完全无效,会被当成普通文本渲染出来。常见错误是漏掉感叹号,写成 ,结果整段文字直接显示在页面上。
注释可以放在任意位置:文档开头、 里、 中、标签之间、甚至属性值后面(但不能插进标签内部,比如 <p title="xxx">></p> 会破坏解析)。
- 正确:
<!-- 用户登录表单开始 --><form>...</form> - 错误:
<form> <!-- 表单字段 --><input type="text"> </form>(虽然能解析,但语义混乱,易误删) - 多行注释直接换行即可,无需每行加标记:
<!--\n页面头部样式\n请勿在此处添加 JS\n-->
别在注释里写 -- 或 >,否则提前截断
HTML 注释一旦遇到 --> 就立刻结束,哪怕它出现在本意是“内容”的地方。最典型的是写“启用--自动保存”,其中 -- 后紧跟 >,会导致注释意外关闭,后续所有内容都暴露为可渲染文本,甚至引发 DOM 结构错乱。
这不是浏览器兼容问题,是所有标准解析器的统一行为。VS Code 等编辑器高亮失效、W3C 验证报错,往往就源于这个细节。
- 危险写法:
<!-- 配置项:启用--自动保存功能 -->(-->出现在中间,注释提前终止) - 安全替代:
<!-- 配置项:启用——自动保存功能 -->(用中文破折号)、或<!-- 配置项:启用 - - 自动保存功能 -->(加空格隔开) - 绝对禁止嵌套:
<!-- 外层 <!-- 内层 --> 外层继续 -->—— 第二个<!--不被识别,第一个-->就关掉了整个注释
脚本和样式块里别用 HTML 注释语法
<script></script> 和 <style></style> 标签内部是 JavaScript 和 CSS 的执行环境,它们有自己的注释规则。<!-- 在这里不会被当作注释,反而可能触发旧版 IE 的“脚本屏蔽”兼容逻辑,造成不可预期的行为。
现代编辑器对 // 和 /* */ 有完整语法高亮与折叠支持,而 HTML 注释在 script/style 里既无高亮,也容易被误删或干扰调试器断点。
- JS 正确:
<script>// 初始化校验<br>function validate() { ... }</script> - CSS 正确:
<style>/* 全局字体 */ body { font-family: sans-serif; }</style> - 错误示例:
<script><!-- 验证函数 -->function validate() {...}(<!--被当成字符串字面量的一部分)
IE 条件注释已彻底失效,别再用
<!--[if IE]>...<![endif]--> 这类写法在 IE10+ 及所有现代浏览器中都被当普通注释处理,既不执行也不报错,但会污染源码、误导新人、增加维护成本。2026 年还在项目里看到它,基本意味着构建流程或历史代码没清理干净。
真正需要兼容旧环境时,应该用特性检测(如检查 document.querySelector 是否存在)、动态加载 polyfill,或者通过构建工具(如 Babel + Autoprefixer)自动处理。把逻辑塞进早已废弃的注释语法里,等于把技术债刻在 HTML 源码上。
另外,搜索引擎会抓取注释内容,大量堆砌关键词或冗余说明反而影响 SEO;而用 <font></font> 标签加 title 属性实现的“悬停提示”,本质是语义错误 —— 它不是注释,是可交互 UI,且对屏幕阅读器不友好。











