我想要做的是一個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