Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 使用转义字符将值从mixin传递到类_Css_Sass_Scss Mixins - Fatal编程技术网

Css 使用转义字符将值从mixin传递到类

Css 使用转义字符将值从mixin传递到类,css,sass,scss-mixins,Css,Sass,Scss Mixins,我有一个贴图生成器,可以添加后期粒子: @mixin generator { @each $key, $value in $config { $infix: '\@#{$key}' !global; @content } } 我在多种情况下使用上面的mixin在末尾添加粒子,如: .y- { @include generator { &-n#{$infix} { display: none !importa

我有一个贴图生成器,可以添加后期粒子:

@mixin generator {
  @each $key, $value in $config {
        $infix: '\@#{$key}' !global;
        @content
      }
    }
我在多种情况下使用上面的mixin在末尾添加粒子,如:

.y- {
  @include generator {
    &-n#{$infix} {
      display: none !important;
    }
    &-in#{$infix} {
      display: inline !important;
    }
  }
}
我得到以下错误:

“&-none”后的CSS无效:应为选择器,为“@”\n

我想要的是:

.y-n@key_name1{
    display: none !important;
}

.y-n@key_name2{
        display: none !important;
    }
仅当我输入us
\@
时,此选项才会出现

我可以在创建类时将它添加到这个粒子中,但正如我所说的,我想在多种情况下使用它,并根据条件改变粒子,所以我需要处于mixin状态。

这样就可以了

$config: (
  1: 'a',
  2: 'b',
  3: 'c'
);

@mixin generator {
  @each $key, $value in $config {
        $infix: '-#{$key}' !global;
        @content
      }
    }

.y- {
  @include generator {
    &-n#{$infix} {
      display: none !important;
    }
    &-in#{$infix} {
      display: inline !important;
    }
  }
} 
看到这个萨斯密斯特了吗

但是一旦你加上

\@
..对于
$infix
变量键字符串,它会抛出一个错误

$infix: '\@#{$key}' !global;
我认为是
\@
打破了你的sass/css

若你们看到问题,你们只能用
@
符号来表示(示例)


也许扔掉
\@
你的sass就能正常运行了?

我可以帮你,但是你正在调用
@include utility\u generator
,但是你的
@mixin
被称为
generator
?你是故意在循环吗?这些都是打字错误。谢谢,编辑过,只是复制粘贴错误,名称应该是相同的。是的,我故意运行一个循环;我想在一个类名的末尾添加多个“字符串”,我和你在一起。你想运行一个数组并在类中输出密钥,给我几分钟。它不起作用,问题是特殊字符。如果我更改代码:$infix:'\@',将出现类似于我的代码中的错误;我需要告诉sass一些事情,不要将其解释/解析为stringSee更新的答案,尽管它的回答很好。我只是确信@content可以传递变量。从逻辑上说,你认为这是允许的。只是修复了我所有的打字错误。对不起,问题不在于我的混音,而在于@符号。我找到的解决办法是使用\\@;我正在测试使用@来定义一个媒体查询类,比如col-7@sm
/* Import another stylesheet from within a stylesheet */
@import url(style2.css);

/* Apply this style only for printing */
@media print {
    body {
        color: #000;
        background: #fff;
    }
}

/* Embed a custom web font */
@font-face {
    font-family: 'DejaVu Sans';
    src: local('DejaVu Sans Regular'), url(/fonts/DejaVuSans.ttf);
}