sass mixin 可以嵌套media吗?

发布于 2022-09-04 15:41:45 字数 1641 浏览 8 评论 0

@mixin bg-image($url) {
  @media (-webkit-min-device-pixel-ratio:3),(min-device-pixe-ratio:3) {
    img: url($url + "@3x.png");
  };
  img: url($url + "@2x.png");
}
引用代码:
    .brand
      display: inline-block
      width: 30px
      height: 18px
      background:
        size: 30px 18px
        repeat: no-repeat
        @include bg-image('brand')

报错代码:

./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vue-loader/lib/style-rewriter.js?{"id":"data-v-560c675e","scoped":false,"hasInlineConfig":false}!./~/sass-loader/lib/loader.js?{"indentedSyntax":true,"sourceMap":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/header/header.vue
Module build failed: 
  @media (-webkit-min-device-pixel-ratio:3),(min-device-pixe-ratio:3) {
 ^
      Illegal nesting: Only properties may be nested beneath properties.
      in D:\study\code\mySelf\outSell\src\common\sass\mixin.scss (line 17, column 3)
 @ ./~/vue-style-loader!./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vue-loader/lib/style-rewriter.js?{"id":"data-v-560c675e","scoped":false,"hasInlineConfig":false}!./~/sass-loader/lib/loader.js?{"indentedSyntax":true,"sourceMap":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/header/header.vue 4:14-412 13:3-17:5 14:22-420
 @ ./src/components/header/header.vue
 @ ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue
 @ ./src/App.vue
 @ ./src/main.js
 @ multi ./build/dev-client ./src/main.js

请问各位大牛 mixin是不是不可以嵌套 media使用,如果不可以的话 ,我这段代码应该怎么改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年慕年 2022-09-11 15:41:45

问题已经解决了,
mixin 里面应该用

background:
  image:$url

而 sass中把 include 放到 background外面调用即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文