Sass 子代选择器(>;)与根选择器(&;)组合导致错误编译
这个问题很容易解释 这是输入:Sass 子代选择器(>;)与根选择器(&;)组合导致错误编译,sass,Sass,这个问题很容易解释 这是输入: .a { position: relative; overflow: hidden; width: 960px; background: #a3c1ef; height: 100%; margin: 0 auto; > &-b { list-style: none; > &-c { display: inline-block
.a {
position: relative;
overflow: hidden;
width: 960px;
background: #a3c1ef;
height: 100%;
margin: 0 auto;
> &-b {
list-style: none;
> &-c {
display: inline-block;
color: blue;
font-size: 100px;
}
}
}
这是预期输出:
.a {
position: relative;
overflow: hidden;
width: 960px;
background: #a3c1ef;
height: 100%;
margin: 0 auto;
}
.a > a-b {
list-style: none;
}
.a > a-b > a-b-c {
display: inline-block;
color: blue;
font-size: 100px;
}
这是我得到的实际输出:
.a {
position: relative;
overflow: hidden;
width: 960px;
background: #a3c1ef;
height: 100%;
margin: 0 auto;
}
> .a-b {
list-style: none;
}
> > .a-b-c {
display: inline-block;
color: blue;
font-size: 100px;
}
当我移除根选择器&
时,输出与预期一样:a>b>c
。但是,当我将根选择器&
与直系后代选择器
结合使用时,输出如上所示。这种行为是如此违反直觉。
有人能解释一下如何修复它(如果可能的话)
SASS编译器版本:1.12.0您必须首先复制>前面的父选择器,然后深入查看它。但是,第三个子级将作为.a>.a-b>.a>.a-b-c{}输出,因此更容易跳出一个级别,然后像我的示例中那样重新开始 我以你的例子为基础,应该可以做到这一点。希望有帮助
您必须先复制>前面的父选择器,然后深入查看它。但是,第三个子级将作为.a>.a-b>.a>.a-b-c{}输出,因此更容易跳出一个级别,然后像我的示例中那样重新开始 我以你的例子为基础,应该可以做到这一点。希望有帮助
谢谢。我只是想偷懒。当我使用SMACS的命名约定时,选择器可能会变得很长。我也误解了符号的作用。谢谢。我只是想偷懒。当我使用SMACS的命名约定时,选择器可能会变得很长。我还误解了符号的作用。