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

ale*_*exw 1 css minify css3 clean-css

是的,我们都知道选择器之间逗号是什么意思.

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

body .container
{
    color:#EEE
}
,
.navbar-default .navbar-nav>.active>a:hover,
h1
{
    color:#000
}
Run Code Online (Sandbox Code Playgroud)

注意在声明块中的结束花括号之后的逗号(我已放置在它自己的行上)body .container.这是有效的CSS吗?如果是这样,这是什么意思?

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

body .container {
  color: #EEEEEE;
}

h1{
  color: #000;
}

.navbar-default .navbar-nav > .active > a:hover, {
    color: black;
}
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 6

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

空选择器(不包含简单选择器序列且不包含伪元素)是无效选择器.

这可能是clean-css中的错误导致的.或者,输入CSS开始时无效,这只是clean-css尝试处理它的结果.