为什么Sass要将分号分条?

为什么Sass要将分号分条?,sass,compass,Sass,Compass,我正在用Compass来编译一个Sass Zen主题。我得到这个警告: Compass has changed how browser support is configured. The following configuration variables are no longer supported: $legacy-support-for-ie6, $legacy-support-for-ie7, $legacy-support-for-ie8 我安装了旧版本的 com

我正在用Compass来编译一个Sass Zen主题。我得到这个警告:

 Compass has changed how browser support is configured. The following configuration         variables are no longer supported: $legacy-support-for-ie6, $legacy-support-for-ie7, $legacy-support-for-ie8
我安装了旧版本的

compass (0.12.7)
sass (3.2.19)
breakpoint (1.3)
我不再得到警告,但是,我在编译的代码中丢失了分号。例如:

/* Address paddings set differently in IE 6/7. */
menu,
ol,
ul {
padding: 0 0 0 $indent-amount; /* LTR */
}

@if $legacy-support-for-ie7 {
/* Correct list images handled incorrectly in IE 7. */
nav ul,
nav ol {
list-style: none;
list-style-image: none;
} 
编译成

menu,
ol,
ul {
padding: 0 0 0 30px 
/* LTR */
}
请注意缺少的分号。似乎到处都有
@if$legacy支持ie
指南针,然后去掉前面的分号。
在我的文件中有51个声明@if$legacy support for ie,如果可能的话,我宁愿保留它们。

ie的
$legacy support
与删除的最后一个分号无关。这是指南针的一个特点

只要代码有效,Sass就不关心代码的格式。生成CSS时,它遵循所选输出样式为空格、缩进、标点符号等指定的样式规则。您只能指定不同的输出样式,而不能更改任何给定样式的细节


请注意,根据CSS,省略最后的分号是完全有效的。

当网站设置为使用compass 1.0之前版本时,我在使用compass的最新版本时遇到问题。尝试使用Compass 0.12.7,然后从中重建依赖项

这与分号被删除有什么关系?是的,我用compass 0.12.7构建了一个新的gemset,它填充了所有依赖项。谢谢@cimmanon这不是一种解释,而是一种在你更新宝石时绕过指南针的方法。我对compass的新版本有过一些问题,其中一个项目是从旧版本开始的,如果你恢复到旧版本,它会解决像这样的古怪问题。我认为你的另一个答案是理解答案基本原理的好答案。没有迹象表明Sass在3.2(与Compass 0.12兼容)和3.3(与Compass 1.0兼容)之间改变了尾随分号的处理方式。尾随分号出现在除compressed之外的所有输出类型中。我当然不能用sassmeister复制OP的声明。