使用Compass Mixin添加!important

Dav*_*vid 45 compass-sass

如果我使用指南针CSS并使用函数或mixin如:

   @include background-image(linear-gradient(#a3cce0, #fff)); 
Run Code Online (Sandbox Code Playgroud)

是否有任何简单的方法让罗盘添加!对它生成的每一行都很重要?

nao*_*fal 85

您可以将它包含在mixin中,如下所示:

@include border-radius(5px !important);
Run Code Online (Sandbox Code Playgroud)

指南针将输出以下内容:

-webkit-border-radius: 5px !important;
-moz-border-radius: 5px !important;
-ms-border-radius: 5px !important;
-o-border-radius: 5px !important;
border-radius: 5px !important;
Run Code Online (Sandbox Code Playgroud)

  • 作为!指南针的重要工作(至少它现在如此),这应该是最好的答案. (4认同)
  • @OliverBenns如果是这种情况,你首先不会使用mixin. (3认同)
  • 当使用更改args值的mixin时,这将不起作用.比如@opacity(). (2认同)

tot*_*rio 28

更新:现在新版本的sass支持这种语法:

@include border-radius(5px !important);
Run Code Online (Sandbox Code Playgroud)

就这样做(如@naoufal回答中所述).

---老答案---

你不能使用!重要的罗盘混合,但罪魁祸首不是指南针,你应该责怪sass.

@include border-radius(5px) !important; #=> SASS Syntax Error
Run Code Online (Sandbox Code Playgroud)

  • @ProLoser我刚试过`@include border-radius(5px!important);`它运行正常.也许自从你的评论以来他们已经解决了这个问题.向下投票这个答案(尽管当时可能是正确的). (13认同)
  • 不应该是`@include border-radius(5px!important);`这也不行.这样做的原因是因为`5px`将显示为每个规则的值,所以!important也需要显示在每个规则的值旁边. (4认同)

小智 7

只是花了几个小时才弄清楚这一点,但你可以做一个快速的技巧。在 SASS 文件的顶部添加以下内容:

$i: unquote("!important");
Run Code Online (Sandbox Code Playgroud)

按照您的风格执行以下操作:

color: #CCCCCC $i;
Run Code Online (Sandbox Code Playgroud)

输出是:

color: #CCCCCC !important;
Run Code Online (Sandbox Code Playgroud)

完整样本:

$i: unquote("!important");

.some-style {
    color: white $i;
}
Run Code Online (Sandbox Code Playgroud)

输出:

.some-style {
    color: white !important;
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*man 5

实际上,您可以使用 a@function来处理,!important同时保持混音本身的灵活性。例如:

@function is-important($important){
  @return #{if($important, '!important', '')};
}

// by default we don't want the !important at the end
@mixin button-primary($important: false) {
  font-size: 14px;
  background: #fff is-important($important);
  color: #000 is-important($important);
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!