Sass / Compass - 仅当参数不是默认值时才生成规则?

时间:2012-09-14 21:32:23

标签: compass-sass sass

我的一个SCSS包含文件中有类似的内容:

$inputBorderRadius: 0 !default;

.input {
  @include border-radius($inputBorderRadius);
}

这很好用;在包含上述代码之前,我可以覆盖$inputBorderRadius,所有内容都符合我的预期。

我想知道的是,如果(例如)border-radius为空,是否有办法告诉SASS根本不生成$inputBorderRadius规则。就我而言,我只是不想生成指定默认值的多余规则,如border-radius: 0

我知道@if指令,但文档说:

  

请注意,控制指令是一项高级功能,不建议在日常样式的过程中使用。

我是否认为这一切都错了?我对SASS很新,所以我希望这不是一个n00b问题。

1 个答案:

答案 0 :(得分:3)

您只想使用null值代替0。 Null现在在Sass 3.2中可用,并且当它是唯一值时不输出属性。

您也可以更轻松地接受警告。在正常使用中,您不希望被控制指令带走,但在您需要它们时它们不会伤害任何东西。对于更简单的情况,还有一个有用的if($test, $true, $false)函数。