2

Sass 3.4 +でこれを機能させるための回避策またはその他の方法はありますか

@mixin icon ($name, $code) {
.#{$name}::before {
content: str-slice("\x",1,1) + $code;}
}

@include icon('test', 4556);

コードは出力する必要があります

.test::before { content: "\4556"; }

しかし、3.4 以降では、\スラッシュが削除され、次のように出力されます。

.test::before { content: "x4556"; }

ありがとう

4

2 に答える 2

10

Sass のエスケープ文字に関して現在議論されている問題に出くわしました。現在、Sass はあまりにも多くの文字を追加するか、出力 css に Unicode 文字を入れてしまうようです。

アップデート:

@mixin icon ($name, $code) {
  $withslash: "\"\\#{$code}\"";
  .#{$name}:before {
    content: unquote($withslash);
  }
}
@include icon('test', '4556');

出力

.test:before {
  content: "\4556";
}

http://sassmeister.com/gist/04f5be11c5a6b26b8ff9

明らかに、このアプローチの欠点は、エスケープ文字を使用して奇妙なことを行い、Sass をだまして不正な形式の文字列の引用符を外すことに依存していることです。

于 2014-09-30T03:24:07.767 に答える