我想添加!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);