在SASS中,像Chris Eppstein提到的地图数据结构这样的东西还在进展中,我尝试实现类似的功能——将字符串映射到相应的十六进制值,用于指定CSS content属性的Unicode字符。(我正在重构一些字体图标SASS代码。)
目前我有一个比较基础的实现:
/*icon1 --> \F000
icon2 --> \F001
icon3 --> \F002*/
@function u-char($name) {
@if $name == icon1 {
@return "000";
} @else if $name == icon2 {
@return "001";
} @else if $name == icon3 {
@return "001";
}
}
@mixin icon-class($name) {
...
content: "\f#{u-char($name)}";
...
}
但是我实际上正在尝试映射大量字符,因此这种方法很繁琐。我希望能够做到类似以下的操作:
@function u-char($name) {
$i: 0;
$itemList: item1, item2, item3;
@each $currItem in $itemList {
@if $name == item1 {
@return i-to-hex-str($i);
}
$i: $i + 1;
}
}
在SASS中是否有将整数转换为十六进制字符串的方法?还有其他优雅的解决方法吗?