%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
@ nex3 это намеренно или регресс в dart-sass?
Предыдущая версия ruby sass имела тот же результат, что и libsass.
Дарт Сасс здесь прав. Поведение Ruby Sass и LibSass нарушает второй закон расширения , согласно которому специфика сгенерированного селектора ( .foo
, специфичность 10) должна быть больше или равна специфичности расширителя ( .foo.foo
, специфичность 20).
Похоже, это было исправлено на последней версии мастера.
Самый полезный комментарий
Дарт Сасс здесь прав. Поведение Ruby Sass и LibSass нарушает второй закон расширения , согласно которому специфика сгенерированного селектора (
.foo
, специфичность 10) должна быть больше или равна специфичности расширителя (.foo.foo
, специфичность 20).