你好可爱的stackoverflow社区。我是一名新的编码员,并且是sass& amp;的新手。中级css主题。我正在一个有主题的网站上工作,我正在尝试自定义我们正在使用的第三方调查小部件的设计。
我们的主题是通过mixin控制的,如下所示:
@mixin themify() {
// Iterate over the themes
@each $theme-name, $theme in $themes {
$current-theme: $theme !global;
@if $theme-name == ‘abc’ {
@content;
} @else {
.theme-#{$theme-name} & {
@content;
}
}
}
}
主题名称位于正文标记&由每个元素继承。所以可以轻松地针对所有孩子。但是,对于调查,我需要使用针对正文的特定数据属性的选择器来设置样式。例如,此选择器成功地允许我定位调查元素:
Body[data-survey-number='77777'] div#a .b {
// styles successfully applied!
}
但是当我想使用theify mixin时:
Body[data-survey-number='77777'] div#a .b {
@include themify {
background-color:theme-get(secondary-color);
}
它打破了。我看到sass汇编为:
theme-name Body[data-survey-number='77777'] div#a .b {
// never applies to anything :(
}
然而,当一个选择器编译成这个(在末尾附加没有空格)时,有效的是:
Body[data-survey-number='77777']theme-name div#a .b {
// this works! :)
}
我想知道如何才能得到这个。也许创造一个新的混合?
我感谢所有/任何想法。