Compass + cleancss 导致的灵异小问题

:blank伪类尚未被Chrome支持,会导致整条规则被忽略。

问题不大,不过很诡异。代码如下:

SASS:

.some-class
  display: none

.other-class:blank
  display: none

HTML:

<div class="some-class">...</div>

理论上说,这样这个div应该不显示。在本项目中,它的确没显示;但是在另外一个将本项目作为依赖的项目中,它却显示出来了。

经检查,本地开发和部署时,直接使用 compass compile 生成CSS,compass 配置中,设置输出模式(output_style)为 compressed,结果是这样的:

.some-class{display:none}.other-class:blank{display:none}

而在作为依赖时,用到的则是 grunt-contrib-cssmin 处理过的CSS,刚才那句就被压缩成

.some-class,.other-class:blank{display:none}

:blank伪类尚未被Chrome中支持,于是整条规则都被忽略,导致div显示出来。