2014-04-01 38 views
0

我需要在很多地方包含模塊導入,所以我想在scss中創建mixin或函數。需要幫助創建scss函數來返回字符串

我mixin.scss

@function import-modules($import,$grid){ 
     @return $import +' modules/modulename_'+$grid ; 
    } 

在main.scss在這裏我要導入,我有

import-modules (@import,1024); 

但它拋出我的錯誤。我如何創建一個函數來返回導入語句?

我得到的錯誤:經過「導入模塊」無效的CSS:預計「{」,是「(‘@進口’,1024);」)

謝謝您的回答,我修改,試了一下這種方式:

$modulesList: 'modules/header/header_', 
'modules/news/news_', 
'modules/footer/footer_', 
'modules/follow_us/follow_us_', 
'modules/ads/ads_', 
'modules/newsletter/newsletter_', 
'modules/comments/comments_'; 

@function import-modules($grid){ 
    @each $module in $modulesList{ 
       @return $module+$grid; 
       } 

} 
@import url(import-modules(1024)); 

在CSS中,我看到: @import URL( 「模塊/報頭/ header_1024」);

回答

1

Sass不會執行任意字符串。如果你想導入一個文件,你必須使用@import指令。

@function import-modules($grid){ 
    @return 'modules/modulename_#{$grid}'; 
} 

@import url(import-modules(1024)); 

但是......

進口可能含有#{}插值,但只有一定的限制。無法根據變量動態導入Sass文件;插值僅適用於CSS導入。因此,它只適用於url()導入。

來源:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import

+0

請檢查修改的註釋。基本上,它停止導入並開始打印導入語句。 – tv4free

+0

檢查我更新的答案。 – cimmanon