Sass 在@import 中使用变量值
Sass use variable value in @import
我的代码是这样的
&.village {
&.village- {
@for $i from 1 through 12 {
&#{$i} {
background-image: url('../../images/maps/#{$i}.png');
@import "maps/map-#{$i}";
}
}
}
}
但是我得到这个错误:
Module build failed: ModuleBuildError: Module build failed:
@import "maps/map-#{$i}";
^
File to import not found or unreadable: maps/map-#{$i}.
我使用 Laravel 5.6,我尝试查找它,但到目前为止我没有找到任何东西。是否可以使用 scss 导入可变文件名?
目前是 not possible,但不久的将来可能会向 Sass 添加一些新功能。
您可以通过使用条件来创建匹配您的导入的规则来实现这一点。您可以为此使用 @if
(当我们等待 @switch
语句变为 implemented 时):
@mixin customImport($file) {
@if $file == 'file-one' {
@import 'file-one';
} @else if $file == 'file-two' {
@import 'file-two';
}
}
然后:
@include customImport('file-one');
我的代码是这样的
&.village {
&.village- {
@for $i from 1 through 12 {
&#{$i} {
background-image: url('../../images/maps/#{$i}.png');
@import "maps/map-#{$i}";
}
}
}
}
但是我得到这个错误:
Module build failed: ModuleBuildError: Module build failed: @import "maps/map-#{$i}"; ^ File to import not found or unreadable: maps/map-#{$i}.
我使用 Laravel 5.6,我尝试查找它,但到目前为止我没有找到任何东西。是否可以使用 scss 导入可变文件名?
目前是 not possible,但不久的将来可能会向 Sass 添加一些新功能。
您可以通过使用条件来创建匹配您的导入的规则来实现这一点。您可以为此使用 @if
(当我们等待 @switch
语句变为 implemented 时):
@mixin customImport($file) {
@if $file == 'file-one' {
@import 'file-one';
} @else if $file == 'file-two' {
@import 'file-two';
}
}
然后:
@include customImport('file-one');