我想要做的是一个mixin与一个可选参数包括或不包括选择器周围的规则。这里是所期望的行为:有条件选择条件包装规则
@include smth(true) => .class{ color:blue }
@include smth(false) => color: blue
我想是这样的:
@mixin smth($selector:true){
@if $selector {
.class{
}
color: blue;
@if $selector{
}
}
}
显然用包围@if指令里面都是问题。所以我试着把@if的内容放在双引号".class{"
下,并使用插值#{".class{"}
(有和没有转义字符\
},所以它不会干扰,但不会影响工作
简而言之,我不希望sass处理该@if的内容,但只是 “把它当成是”
UPDATE
从cimmanon答案我设法创造一个更一般的mixin:
@mixin conditional-wrap($condition, $selector){
@if $condition{
#{$selector}{
@content
}
}
@else{
@content
}
}
和S o我们现在可以做:
@mixin smth($selector:true){
@include conditional-wrap($selector, '.class'){
color: blue;
}
}
投票关闭的打字错误(提示:你不能有更多的开放大括号比你关闭大括号)。 – cimmanon 2015-04-03 13:35:28
你的意思是在同一个@if指令中吗?因为否则就没有。 – Ghetolay 2015-04-03 13:40:18
然后,你的嵌套是搞砸了,你需要找到一个编辑器,显示匹配的花括号。 – cimmanon 2015-04-03 13:42:17