SASS 是不是支持向 mixin 中的所有属性添加 !important?
Posted
技术标签:
【中文标题】SASS 是不是支持向 mixin 中的所有属性添加 !important?【英文标题】:Does SASS support adding !important to all properties in a mixin?SASS 是否支持向 mixin 中的所有属性添加 !important? 【发布时间】:2013-12-15 19:54:12 【问题描述】:我目前正在使用compass framework 和所有有用的 CSS3 混合。我想使用 border-radius(5px)
mixin 并将所有来自它的属性标记为 !important
在LESS 中,只需在调用后指定!important
即可将!important
应用于mixin 中的所有属性
.myMixin(@x)
border-radius: @x;
-moz-border-radius: @x;
.myClass
.myMixin(5px) !important;
编译成
.myClass
border-radius: 5px !important;
-moz-border-radius: 5px !important;
这在SASS 中是否可行,还是我必须用一个重要的参数重写mixin?
@mixin my-border-radius($value, $important: false)
border-radius: @value if($important, !important, null);
....
【问题讨论】:
【参考方案1】:答案几乎太明显了......
!important
可以简单地指定为属性值的一部分
border-radius(5px !important);
【讨论】:
【参考方案2】:Cander 的答案适用于简单的变量,这些变量后面没有任何其他属性。对于更复杂的 CSS,例如转换属性,您可以这样做:
@mixin 转换($duration, $content:null) -webkit-transition:all $duration 线性 $content; -moz-transition:all $duration 线性 $content; -o-transition:all $duration 线性 $content; 过渡:所有 $duration 线性 $content;我添加了$content
变量并将其设置为null
。现在你可以简单地调用 mixin:
@include transition(0.3s);
如果你想添加!important
,请使用
@include transition(0.3s, !important);
谢谢!
【讨论】:
【参考方案3】:混音:
@mixin verlauf($color1, $color2)
background: $color1;
background: -moz-linear-gradient(top, $color1 0%, $color2 100%);
background: -webkit-linear-gradient(top, $color1 0%,$color2 100%);
background: linear-gradient(to bottom, $color1 0%,$color2 100%);
SCSS:
@include verlauf(#607a8b !important, #4b6272 !important);
结果:
background: #607a8b !important;
background: -moz-linear-gradient(top, #607a8b !important 0%, #4b6272 !important 100%);
background: -webkit-linear-gradient(top, #607a8b !important 0%, #4b6272 !important 100%);
background: linear-gradient(to bottom, #607a8b !important 0%, #4b6272 !important 100%);
它也适用于两个(以及更多)变量的 mixin!
【讨论】:
以上是关于SASS 是不是支持向 mixin 中的所有属性添加 !important?的主要内容,如果未能解决你的问题,请参考以下文章
html Sass:将属性值传递到/在mixins / functions #sass内部
如何在不使用 mixin 的情况下重用 sass 中的类? [复制]
scss Sass mixin - 重复相同的值,最多4个属性
scss Sass mixin - 重复相同的值,最多4个属性