尝试编译 SASS 代码时出错

Ros*_*ost 3 sass

我使用 Sass 来设置样式。当我尝试编译这部分代码时:

.heart {
  width: $size * 2;
  height: $size * 1.65;
  cursor: pointer;

  &:before {
    position: absolute;
    content: "";
    left: $size;
    width: $size;
    height: $size * 1.65;
    background: #fff;
    border-radius: 50px 50px 0 0;
    transform: rotate(-45deg);
    transform-origin: 0 100%;
  }
  &:after {
    @extend .heart:before;
    left: 0;
    transform: rotate(45deg);
    transform-origin :100% 100%;
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

@extend .heart:before;
Error: compound selectors may longer be extended.
Consider `@extend .heart, :before` instead.
See http://sass-lang.com/documentation/file.SASS_REFERENCE.html#extending_compound_selectors for details.

@extend .heart:before;
Run Code Online (Sandbox Code Playgroud)

它不能使用终端进行编译,但可以使用 Prepros 应用程序进行编译并按预期工作。有什么想法为什么当我尝试使用命令编译时它不起作用sass

我使用了这个例子: https: //codepen.io/souporserious/pen/yEntv

J Q*_*est 5

我认为你需要创建一个这样的占位符;我还知道 2016 年左右使用 @extand 和伪元素进行命令行编译时存在一些错误。

%placeholder {
    position: absolute;
    content: "";
    left: $size;
    width: $size;
    height: $size * 1.65;
    background: #fff;
    border-radius: 50px 50px 0 0;
    transform: rotate(-45deg);
    transform-origin: 0 100%;
}

.heart {
  width: $size * 2;
  height: $size * 1.65;
  cursor: pointer;

  &:before {
    @extend %placeholder;
  }
  &:after {
    @extend %placeholder;
    left: 0;
    transform: rotate(45deg);
    transform-origin :100% 100%;
  }
}
Run Code Online (Sandbox Code Playgroud)