You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS注释开头加感叹号为何会被浏览器识别为有效属性代码?

CSS 注释开头感叹号的作用及生效问题说明

感叹号本身的标准作用

CSS 官方规范中,/*! 开头的内容本质还是合法的 CSS 注释,浏览器原生不会对开头的!做特殊处理。加!的作用是给前端工程化的压缩工具(比如 cssnano、terser 内置的 CSS 压缩能力)做标记:

  • 普通/* */包裹的注释,在生产环境压缩时会被直接删除
  • 以/*!开头的注释,会被压缩工具识别为「重要注释」(一般用来放版权声明、开源许可内容),压缩时会保留不会被删掉

你遇到的注释内属性生效的原因

正常场景下/*!visibility:hidden*/一定会被浏览器识别为注释,属性不会生效,你遇到的生效情况大概率是以下两种原因之一:

  • 该 CSS 文件经过了项目自定义的编译脚本处理:部分 React 技术栈的工程化方案会用特殊格式的注释做条件编译标记,在构建时会把符合规则的/*! */里的代码拆出来变成有效 CSS 代码,你在浏览器里看到的可能是 sourceMap 映射后的原始代码,实际运行的代码已经去掉了注释包裹
  • 前面的 CSS 代码存在语法错误:比如存在未闭合的引号、未闭合的选择器括号、语法错误的@规则等,会导致浏览器解析到这一行时,/*没有被识别为注释的起始标记,后续的属性就会被当成有效代码解析

内容的提问来源于stack exchange,提问作者altern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:06:04