我想添加!important到一个mixin。我尝试了以下两种方法,它们都返回错误:
@include linear-gradient(hsl(68%, 94%, 90%), hsl(68%, 90%, 80%)); !important
@include linear-gradient(hsl(68%, 94%, 90%), hsl(68%, 90%, 80%)) !important;
有没有办法正确地做到这一点?
在某些情况下,我使用一个名为的可选参数$important,我可以传入true.
例子:
my-mixin($important: true);
它看起来像这样,带有一个辅助函数,以避免重复我必须切换的属性important:
@function if-important($important){
  @return #{if($important, '!important', '')};
}
@mixin my-mixin($important: false) {
  border-radius: 0; //whatever
  border: 1px solid #ccc if-important($important);
  background-color: #fff if-important($important);
  color: #000 if-important($important);
}
!important 不能在 mixin 中使用。请参阅以下链接。
使用 Compass Mixin 添加 !important
https://github.com/cloudhead/less.js/issues/547
):
尝试将其作为参数传递:
@mixin anim($params...){
  $values: null;
  @for $i from 0 to length($params) {
    @debug #{nth($params, $i + 1)};
    @if '#{nth($params, $i + 1)}' != '!important' {
      $values: #{nth($params, $i + 1)} $animation__time $animation__easing, $values;
    }
  }
  @if '#{nth($params, length($params))}' != '!important' {
    transition: $values;
  }
  @else {
    transition: $values !important;
  }
}
用法:
@include anim(background-color, color, !important);