Chris Eppstein が SASS の進行中の作業として言及しているMap データ構造のようなものの代わりに、私は同様のことを達成しようとしています - 文字列を対応する 16 進値にマッピングします。これは、CSS の 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で整数から16進文字列への変換を行うものはありますか? これを回避する別のエレガントな方法はありますか?