如何在某些值的开头附加`\ x`并从中创建字符串?

时间:2017-07-15 16:37:32

标签: sass

我在sass / scss中编写了以下代码。在这里,我面临一个问题,即当我试图循环并将值与\连接时。当我的值包含字母数字时,我会获得空间。请建议如何克服这种形式

SCSS =>> 输入:

$data: (
a:2766,
b:27B3,
d:1F48C
);

@each $value1, $value2 in $data {
 .#{$value1}{
   content: str-slice("\x",1,1)+($value2);
 }
}

输出:

.a {
  content: "\2766";
}

.b {
  content: "\27B 3";
}

.d {
  content: "\1F 48C";
}

1 个答案:

答案 0 :(得分:0)

看起来这是Sass本身的一个错误。更新你的Sass,你的问题应该得到解决。

您可以在sass playground上看到这种情况。复制并粘贴您的sass代码,然后选择Sass v3.3.14Sass v3.4.21(或任何更晚/更新),您将看到差异。 :)

编辑: 要在开头添加\x,您可以这样做:

SCSS(Sass v3.4.21):

$data: (
  a: 2766,
  b: 27B3,
  d: 1F48C
);

@each $value1, $value2 in $data {
 .#{$value1}{
   content: str-insert(#{$value2}, "\\x", 1);
 }
}

CSS输出:

.a {
  content: \x2766;
}

.b {
  content: \x27B3;
}

.d {
  content: \x1F48C;
}

str-insert将一个字符串放在其他字符串中。 \\中的\\x转义为单\x。哦,作为参考说明,sass中的第一个字符是1,而不是0