CSS注释拆分属性名时失效,是否使用方式有误?
为啥你的CSS注释没生效?
嘿,这其实是对CSS注释规则的一个常见小误解!你没记错,CSS确实支持/* ... */这种块级注释,但问题出在注释放置的位置——它不能随便插在语法需要连续的标识符中间。
问题出在哪?
你写的代码是:
<style> body {co/*garbage*/lo/*garbage*/r:bl/*garbage*/ue} </style>
这里你把color拆成了co+注释+lo+注释+r,把blue拆成了bl+注释+ue。但CSS的属性名(比如color)和属性值(比如blue)都是不可拆分的标识符,浏览器会把拆分后的部分当成完全不同的无效内容,自然不会识别出color: blue这个正确规则。
正确的注释用法
CSS注释只能放在语法允许空白的位置,比如:
- 整个CSS规则的外面
- 属性定义的前后
- 属性值的前后(不拆分值本身)
- 单独占一行
举几个正确的例子:
/* 这是放在<style>标签开头的注释 */ <style> /* 这是选择器前面的注释 */ body { color: blue; /* 这是属性值后面的注释 */ background: /* 这是属性值中间允许的注释(只要不拆分值) */ #fff; /* 这是单独占一行的注释 */ margin: 0; } </style>
简单说就是:注释可以用来“留白”,但不能把一个完整的语法单元(比如属性名、值)劈成两半插在中间,否则浏览器就认不出原本的语法了。
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

