:ERB)以下SCSSで
// Set up variable and mixin
$foo-baz: 20px; // variable
<%
def do_this(bar)
"width: $foo-#{bar};"
end
%>
#target {
<%= do_this('baz') %>
}
結果:粗いの、以下のCSSの結果
// Set up variable and mixin
$foo-baz: 20px; // variable
#target {
width: $foo-baz;
}
変数のここでは簡単な例です:として
$colors: (
blue: #007dc6,
blue-hover: #3da1e0
);
@mixin colorSet($colorName) {
color: map-get($colors, $colorName);
&:hover {
color: map-get($colors, $colorName#{-hover});
}
}
a {
@include colorSet(blue);
}
出力を:動的に参照
a { color:#007dc6 }
a:hover { color:#3da1e0 }
は、動的に作成:
@function addColorSet($colorName, $colorValue, $colorHoverValue: null) {
$colorHoverValue: if($colorHoverValue == null, darken($colorValue, 10%), $colorHoverValue);
$colors: map-merge($colors, (
$colorName: $colorValue,
$colorName#{-hover}: $colorHoverValue
));
@return $colors;
}
@each $color in blue, red {
@if not map-has-key($colors, $color) {
$colors: addColorSet($color, $color);
}
a {
&.#{$color} { @include colorSet($color); }
}
}
出力のよう:
a.blue { color: #007dc6; }
a.blue:hover { color: #3da1e0; }
a.red { color: red; }
a.red:hover { color: #cc0000; }
@castusこれはどのようにして問題を解決しましたか?私は非常に似た問題に遭遇しています。リストから文字列値を取り出し、それに$を加えて変数として使用する必要があります。 – cmegown