SASS / Compass在输出样式表中写入RGBA值时不一致

时间:2012-06-24 17:06:32

标签: css sass compass-sass scout-sass

我在Windows 7上使用Scout应用程序进行方便的SASS / Compass编译,而无需配置所有内容:

http://mhs.github.com/scout-app/

我已将其设置为监视我的scss文件夹并将main.css输出到我的css文件夹,它可以正常工作。但是,我有时会遇到一个非常令人沮丧的时间,这个问题似乎与保存事物的顺序有关。

例如,我有这样的规则:

@include background-with-css2-fallback(image-url("bg_skin.png"),image-url("bg_noise.png"),linear-gradient(top, rgba(0,0,0,0), rgba(0,0,0,.4)),$color-header-background url(../img/bg_skin.png));

这会创建一个由两个分层PNG组成的背景,并应用半透明渐变。在较旧的浏览器上,应用基色和单个PNG。在正常情况下,这将创建以下CSS。请注意,上面生成了几十行,我现在只显示一个相关的行:

background: url('img/bg_skin.png?1339414190'), url('img/bg_noise.png?1339150807'), -moz-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4)), #b9d233 url(../img/bg_skin.png);

一切都很好。在同一个文件中,这是我的主要scss文件,最后我导入了一个像这样的部分:

@media screen and (max-width: 940px) {  @import 'tablet'; }

当我对该部分文件(_tablet.scss)进行更改时,Scout将检测它并重新编译所有内容。但是,这样做会突然导致关于我之前提到的背景规则的不同规则:

background: url('img/bg_skin.png?1339414190'), url('img/bg_noise.png?1339150807'), -moz-linear-gradient(top, rgba 0, 0, 0, 0), rgba(0, 0, 0, 0)), #b9d233 url(../img/bg_skin.png);

现在创建一个从0到0的渐变,而不是从0到0.4!出乎意料。

我发现再次编辑我的main.scss文件并保存它,再次导致正确的渐变规则,然后它在parial中弄乱了类似的规则。重新保存部分文件将修复部分CSS,但它会再次弄乱主要规则。这是完全陷入僵局的情况。

我想要的是我的主要SCSS和部分SCSS文件都能正确编译。我可以忍受我需要以特定顺序保存这些文件的情况,但是现在每个订单都会导致错误的结果。

这是一个常见问题还是设置问题?有什么建议吗?

2 个答案:

答案 0 :(得分:3)

经过一番挖掘后,我找到了问题的原因:

https://github.com/mhs/scout-app/issues/44

问题确实在于rgba值未正确编译。具体来说,它只适用于最后保存的文件,这与我的问题一致。不幸的是,对于我的设置(Windows上的Scout),还没有解决方案,但开发团队正在努力解决它。

答案 1 :(得分:3)

您可以尝试使用除法而不是使用十进制数。例如:0.5> 5/10。

适合我,我在MACOSX LION / Textmate / Scout / Firefox 15