css pseudo class mixin 使用变量

css pseudo class mixin using a variable

我想让下面的代码工作:

@mixin wrapper-bg($make-id) {

}
.wrapper-bg:before {
  ...
  background-image: url('/images/makes/{$make-id}.png');
  ...
}

我最好的计划是什么?

编辑: 事实上,无论如何我可能做错了。我想要的是每个品牌的风格,唯一改变的是图像。此 css 由 gulp 编译,因此无法注入任何 php 变量。

我明白了,你正在使用SASS :) 如果是这样,你可以这样做:

@mixin wrapper-bg($image-name) {
 &::before {
   background-image: url(/images/makes/#{$image-name}.png);
 } 
}
.wrapper-bg {
  @include wrapper-bg(image-name);
}

根据您的评论,我假设您在这里使用 Sass,所以我想出了以下内容。您可以使用一个 mixin,它接受一个变量(在本例中为 id),它将 return 应用到的元素上的 :before{} 标记:

@mixin wrapper-bg ($id) {
    &:before {
        background-image: url("/images/makes/#{$id}.png");
    }
}

.wrapper-bg {
    @include wrapper-bg("test");
}

这将导致:

.wrapper-bg:before {
  background-image: url("/images/makes/test.png");
}

你可以在这里玩代码:http://codepen.io/offinga/pen/aJbeJM