如何在“&”之后'插入'以“:”开头的字符串变量在scss.erb文件中

时间:2015-10-27 19:51:11

标签: ruby sass erb

在scss.erb文件中,我正在尝试向mixin中添加一个变量,允许修改子样式的上下文。虽然我正在使用的语法直接在scss中工作,但似乎ruby是干扰因为&:具有特定含义。例如,在scss.erb文件中:

@mixin test($pseudo: ":before") {
    color: #F00;

    &#{$pseudo} { content: 'x'; }
}

后来,正常的scss:

.my-element {
    // after pseudo element
    @include test($pseudo: ":after");
}

.my-element {
    // self
    @include test($pseudo: "");
}

导致错误Invalid CSS after " &{$pseudo": expected ":", was "} { conte...

此处的实际情况:https://github.com/bjnsn/compass-fontcustom/blob/master/lib/compass/fontcustom/templates/stylesheet.scss.erb

思考?我假设有一个我可以使用的转义序列,但Ruby不是我的母语。

1 个答案:

答案 0 :(得分:1)

您可以将其包装在ERB标记中,如下所示:

...
<%= "&" %>#{$pseudo} { content: 'x'; }
...

有点乱,但这就是它被认为是一个字符串。