在CSS3中,声明块之间的逗号是什么意思?

In CSS3, what does a comma between declaration blocks mean?

是的是的,我们都知道comma between selectors是什么意思。

这是不一样的。我以为我很了解 CSS,但今天我遇到了我以前从未见过的东西 - 声明块 之间的逗号 。我一直在使用 clean-css,它生成了这个缩小的、干净的输出(为了便于阅读,我重新插入了一些空格):

body .container
{
    color:#EEE
}
,
.navbar-default .navbar-nav>.active>a:hover,
h1
{
    color:#000
}

请注意 body .container 的声明块中右花括号后的逗号(我将其放在单独的行中)。这有效 CSS 吗?如果是,那是什么意思?

我对 clean-css 的输入 CSS 如下:

body .container {
  color: #EEEEEE;
}

h1{
  color: #000;
}

.navbar-default .navbar-nav > .active > a:hover, {
    color: black;
}

不,它无效 CSS。该位置的逗号表示它前面有一个空选择器。但是空选择器根本不是选择器;选择器必须至少包含一个简单的选择器或一个伪元素(带有隐式 *)。来自 spec:

An empty selector, containing no sequence of simple selectors and no pseudo-element, is an invalid selector.

这可能是 clean-css 中的错误造成的。或者,输入 CSS 一开始是无效的,这只是 clean-css 尝试处理它的结果。