为什么“a”-&引用;第一个Sass列表项中的字符是否重要?
在输出<代码>::选择样式的混音中:为什么“a”-&引用;第一个Sass列表项中的字符是否重要?,sass,gulp-sass,sass-lint,Sass,Gulp Sass,Sass Lint,在输出::选择样式的混音中: @mixin selection($color, $background) { $prefixes: '', '-moz-'; @each $prefix in $prefixes { &::#{$prefix}selection { color: $color; background: $background; } } } 一切按预期进行 如果我更改列表中项目的顺序: $prefixes: '-moz-
@mixin selection($color, $background) {
$prefixes: '', '-moz-';
@each $prefix in $prefixes {
&::#{$prefix}selection {
color: $color;
background: $background;
}
}
}
一切按预期进行
如果我更改列表中项目的顺序:
$prefixes: '-moz-', '';
它只输出第二项的大小写
如果我将第一个列表项更改为不以“-”开头,那么它将输出两种情况
当“-moz-”是第一项时,为什么不起作用 我很惊讶它能编译,它应该做的是出错,直到您从这一行
&::#{$prefix}选择中删除符号,如果您这样做,它应该按照您的预期工作。@ChrisW。我试过不用符号,但结果是一样的。为什么会引起问题?它表示父对象,因此我可以将mixin包含在选择器中,选择状态将应用于该选择器,例如p::selection{etc}
。实际上,既然您提到了它,我就将其放在codepen中,没有任何问题。在SassMister上测试代码时,更改项目顺序不会更改输出(除了更改编译类的顺序)。也许它来自于您的编译器配置?是的,它一定是我的配置中的某个东西,谢谢@Arkellys。虽然我不完全理解它是如何工作的。我更改了autoprefixer的浏览器
选项,现在我得到了正确的输出,两个前缀都是-moz-
。以前我有'>0.5%,“ie 9”“,
,而它使用的是”>0.5%,“last 1 version”,“Firefox ESR”,“
。