2016-11-18 35 views
-1

延長我有三個SASS文件(包括所有必要的進口):SASS:將在混入

  • 變量
  • 精靈

變量我有:

@mixin svg-sprite($sprite) { 
    @extend .{$sprite}; 
    @extend .{$sprite}-res; 
} 

我在打電話:

@include svg-sprite(".logo"); 

和精靈:

%svg-common { 
    background: url("svg/sprite.view.svg") no-repeat; 
} 

.logo { 
    @extend %svg-common; 
    background-position: 0 58.3969465648855%; 
} 

.logo-res { 
    width: 180px; 
    height: 80px; 
} 

,但我得到的錯誤:

Error: Invalid CSS after " @extend": expected selector, was ".{$sprite};" 
     on line ** of ****.scss 
>> @extend .{$sprite}; 

什麼,我做錯了什麼?

+0

@Harry也許有什麼解決辦法忘記#? 使用我的精靈? – brabertaser19

+0

對不起,我先前的評論。我立場糾正。下面給出的答案適用於我,似乎Sass確實支持它。 – Harry

回答

2

的問題是,你的代碼mixin

的線內插的時候應該是這樣的

@mixin svg-sprite($sprite) { 
    @extend #{$sprite}; 
    @extend #{$sprite}-res; 
} 
+0

你是對的。所以Sass確實允許帶擴展選擇器的'@ extend'。我立場糾正。 – Harry

+1

是的。插值非常強大,在處理選擇器時工作正常。 –