我想将!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;
有没有办法正确地做到这一点?
答案 0 :(得分:3)
!important不能用于mixin。请参阅以下链接。
Adding !important using a Compass Mixin
https://github.com/cloudhead/less.js/issues/547
):
答案 1 :(得分:3)
在某些情况下,我使用名为$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);
}
答案 2 :(得分:0)
答案 3 :(得分:0)
尝试将其作为参数传递
@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);