需要帮助创建scss函数来返回字符串

时间:2014-04-01 19:45:12

标签: css3 sass mixins

我需要在很多地方包含模块导入,所以我想在scss中创建mixin或函数。

  

在我的mixin.scss

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

在main.scss我要导入的地方,我有

import-modules (@import,1024);

但它会引发我的错误。如何创建一个函数来返回import语句?

我得到的错误:#34之后的无效CSS;导入模块":预期" {",是"(' @ import',1024 );&#34)

感谢您的回答,我修改并尝试了这种方式:

$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(" modules / header / header_1024");

1 个答案:

答案 0 :(得分: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