Директива Sass @content включает родительский селектор

#css #sass

#css — код #нахальство #css #sass

Вопрос:

Я написал Sass mixin, который работает, как и ожидалось, за исключением одной проблемы: директива @content, похоже, включает родительский селектор, а не только содержимое, заключенное в круглые скобки к mixin.

Микширование:

 @mixin breakpoint($parameters){

    $query: 'screen and ';

    @each $variable, $value in $parameters {
        $query: $query   '('   $variable   ':'   $value   ') and ';
    };

    $query: str-slice($query, 0, -5);

    @media #{$query} { @content; };
}
  

Я пытаюсь использовать его следующим образом:

 #div {
    background-color: blue;

    @include breakpoint((max-width:500px)) {
        background-color: purple;
    };
}
  

Однако это компилируется до следующего, с повторением идентификатора #div:

 #div {
  background-color: blue; }
  @media screen and (max-width: 500px) {
    #div {
      background-color: purple; } }
  

Желаемый результат:

 #div {
  background-color: blue;
  @media screen and (max-width: 500px) {
      background-color: purple;}
}
  

Любая помощь в устранении этой проблемы очень ценится!

Комментарии:

1. Вывод правильный la. Он будет скомпилирован в css. Итак, со 2-го по последнее верно. И ваш желаемый результат недействителен в css.

2. @HermLuna Ого, я так увлекся Sass, что забыл об окончательном преобразовании в CSS! Спасибо за помощь, вы абсолютно правы.

3. Потому что я тоже попал в это. Это брат SCSS. У Sass другой синтаксис. Намного короче. Не нужно писать @mixin. Простое использование =. Include означает использование символа ( ).