Libsass: @extend игнорирует @mixin

Созданный на 6 авг. 2019  ·  3Комментарии  ·  Источник: sass/libsass

input.scss

%color {
  color: blue;
}

<strong i="6">@mixin</strong> getOverridedSelector {
  &#{&} {
    @content;
  }
}

.foo {
  <strong i="7">@include</strong> getOverridedSelector {
    <strong i="8">@extend</strong> %color;
  }
}

.bar {
  <strong i="9">@include</strong> getOverridedSelector {
    color: red;
  }
}

Фактические результаты

libsass 3.6.0
Ruby Sass 3.7.4
а также на коде (возможно, libsass)

.foo {
  color: blue;
}

.bar.bar {
  color: red;
}

Ожидаемый результат

dart sass 1.22.6-1 (Archlinux AUR)

.foo.foo {
  color: blue;
}

.bar.bar {
  color: red;
}

источник, обнаруживший эту проблему: https://stackoverflow.com/questions/57376896

Bug - Confirmed Dev - Test Written

Самый полезный комментарий

Дарт Сасс здесь прав. Поведение Ruby Sass и LibSass нарушает второй закон расширения , согласно которому специфика сгенерированного селектора ( .foo , специфичность 10) должна быть больше или равна специфичности расширителя ( .foo.foo , специфичность 20).

Все 3 Комментарий

@ nex3 это намеренно или регресс в dart-sass?
Предыдущая версия ruby ​​sass имела тот же результат, что и libsass.

Дарт Сасс здесь прав. Поведение Ruby Sass и LibSass нарушает второй закон расширения , согласно которому специфика сгенерированного селектора ( .foo , специфичность 10) должна быть больше или равна специфичности расширителя ( .foo.foo , специфичность 20).

Похоже, это было исправлено на последней версии мастера.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги