Menu

CSS 注释语法:CSS 怎么写注释

CSS 只有一种注释语法:/* ... */,单行和多行都用它。了解注释可以写在哪里、如何注释掉一条规则,以及为什么 // 和嵌套注释会悄悄破坏下一条规则。

本页包含可运行的编辑器。编辑、运行,立即查看输出。

CSS 注释的写法

CSS 注释以 /* 开头,以 */ 结尾。两者之间的所有内容都会被浏览器忽略,无论它只有一行还是有二十行。

只有这一种语法。CSS 没有单独的单行注释。

注释可以写在哪里

注释可以放在任何允许空白的地方:规则之间、声明之间、值的后面、选择器列表中间。在 .css 文件、<style> 元素和 style 属性中,它的用法都一样。

/* Buttons */
.btn,          /* default */
.btn-primary { /* variant */
  padding: 8px 14px; /* 8px top and bottom, 14px sides */
}
<p style="color: #16a34a; /* inline comments work too */">Hello</p>

HTML 注释 <!-- ... --> 用于标记,而不是用于 CSS。HTML 注释页面把这两种语法放在一起做了对比。

注释掉代码

注释最常见的日常用途,是在不删除代码的前提下关掉某条声明,看看它起了什么作用。用 /* */ 把它包起来:

删掉 border 那一行两边的 /* 和 */,琥珀色的边框就会出现。注释掉整条规则也是同样的方法:在选择器前面加 /*,在右花括号后面加 */。

大多数编辑器都能帮你切换注释:选中几行,按 Ctrl + /(macOS 上是 Cmd + /)。

为什么 // 会破坏你的 CSS

// 看起来像注释,因为在 JavaScript、Sass 和 Less 中它确实是注释。但在 CSS 中,它只是两个字符,会变成后面内容的一部分。于是浏览器看到一个无效的选择器,把紧接着的整条规则都丢掉,而且没有任何错误提示。

浏览器把 // this is NOT a comment .one 当成了一个选择器,而它是无效的,所以整条 .one 规则都被丢弃了。把这一行改成 /* this is a comment */,绿色背景就回来了。

注释不能嵌套

注释在遇到第一个 */ 时结束。如果用注释包住一段本身已经含有注释的代码,外层注释会提前结束:

要注释掉一段含有注释的代码,先删掉或缩短里面的注释。

用注释组织样式表

很长的样式表加上分节标题会更易读。一种常见的写法:

/* ==========================================
   Layout
   ========================================== */

.page { max-width: 960px; margin: 0 auto; }

/* ------------------------------------------
   Header
   ------------------------------------------ */

.header { padding: 16px; }

/*! License: MIT (many minifiers keep comments that start with "!") */

注释会作为文件的一部分发送给每一位访问者,在查看网页源代码时也能看到,所以千万不要在注释里写密码、内部 URL 或任何你不愿公开的备注。

常见错误

  • 使用 //。 它会悄悄删掉下一条规则。请用 /* */。
  • 嵌套注释。 第一个 */ 就会结束注释,剩下的部分会破坏下一条规则。
  • 忘记写结尾的 */。 /* 之后直到样式表末尾的所有内容都会变成注释。
  • 在 CSS 中使用 <!-- -->。 这是 HTML 的注释语法,不能注释掉 CSS。
  • 把机密信息留在注释里。 它们会随样式表一起发送到浏览器。

常见问题

CSS 中怎么写注释?

用 /* 和 */ 把文字包起来:/* This is a comment */。无论是一行还是多行,都用同样的语法,而且样式表中任何允许空白的地方都可以写。

CSS 中可以用 // 写注释吗?

不可以。CSS 没有单行注释。// 会被当作下一个选择器或声明的一部分,让它变得无效,于是浏览器会丢弃整条规则或声明。Sass、Less 等预处理器接受 //,但纯 CSS 不接受。

CSS 注释可以嵌套吗?

不可以。注释在遇到第一个 */ 时结束,所以 /* a /* b */ c */ 在 b 之后就结束了,剩下的 c */ 会变成无效内容,破坏后面的规则。

CSS 注释的快捷键是什么?

在大多数代码编辑器中,包括 VS Code,在 Windows 和 Linux 上按 Ctrl + /,在 macOS 上按 Cmd + /,就能用 /* */ 包住选中的行,再按一次则取消注释。

CSS 注释会影响性能吗?

只会增加文件的字节数。浏览器在解析时会丢弃注释。构建工具压缩样式表时会删除注释;很多工具会保留以 /*! 开头的注释,这是许可证声明的惯例写法。

Coddy 编程语言插图

和 Coddy 一起学编程

开始