css - SASS 我可以用字符串和列表值组成变量名吗
问题描述
我有许多引用 SVG 图标的 SASS 变量。下面是一个简化的例子:
我希望能够遍历字符串列表并以使用 icon-checkbox 类的背景样式呈现的方式组成 SASS 变量名称。到目前为止,我的方法不起作用。我可以告诉我如何/是否可以在 SASS 中完成。
$icon-trash-grey: "data:image/svg+xml;charset=UTF-8,<svg data>";
$icon-save-grey: "data:image/svg+xml;charset=UTF-8,<svg data>";
$icon-list: trash, save; // list of icon names
.icon-checkbox {
@each $key in $icon-list {
background: url($icon-#{$key}-grey);
// other styles
}
}
提前致谢
解决方案
以下SASS
$icon-trash-grey: "data:image/svg+xml;charset=UTF-8,<svg data>";
$icon-save-grey: "data:image/svg+xml;charset=UTF-8,<svg data>";
$icon-map: (
trash: $icon-trash-grey,
save: $icon-save-grey,
);
.icon{
@each $key, $value in $icon-map {
&.#{$key} {
background: url($value);
}
}
}
呈现这个 CSS
.icon.trash {
background: url("data:image/svg+xml;charset=UTF-8,<svg data>");
}
.icon.save {
background: url("data:image/svg+xml;charset=UTF-8,<svg data>");
}
您可以查看、编辑或分叉此Sassmeister
推荐阅读
- visual-studio-code - 有没有办法通过 API 访问 editorHasDefinitionProvider 或类似的上下文标志?
- apache-kafka - 为什么不能在 Kafka 中正确使用消费者?
- android - 我想要电子商务应用程序中firebase firestore数据库的同步方法
- javascript - 错误:404 Not Found 抱歉,请求的 URL 'http://localhost:8000/main.html' 导致错误:文件不存在
- java - 新手:apache-ignite-2.8.1 default-config.xml更改失败
- javascript - VueJS 中 GET 请求的异步性
- google-cloud-platform - 谷歌云静态网站不工作
- javascript - 如何返回数组并检查第一个非零值 - nodejs
- sql - 将结果分成 3 个部分
- javascript - React Native TypeError undefined is not a function('...data.map...'附近)