Css 具有多个父选择器的根上的SASS@

Css 具有多个父选择器的根上的SASS@,css,sass,bem,Css,Sass,Bem,我有一个小问题,搜索到目前为止还没有任何结果。但它一直在出现 我使用SASS pre在根目录下使用@at,这样我就可以使用BEMCSS语法 我有以下SCS: .cc_sidebar,.cc_popup{ .btn{ display: inline-block; cursor: pointer; @at-root{ #{&}--icon{ width: 25px;

我有一个小问题,搜索到目前为止还没有任何结果。但它一直在出现

我使用SASS pre在根目录下使用@at,这样我就可以使用BEMCSS语法

我有以下SCS:

.cc_sidebar,.cc_popup{
    .btn{
        display: inline-block;
        cursor: pointer;
        @at-root{
            #{&}--icon{
                width: 25px;
            }
        }
    }
}
图标修改器类的预期输出为:

.cc_sidebar .btn--icon,cc_popup .btn--icon{width: 25px;}
但我得到的是:

.cc_sidebar .btn, .cc_popup .btn--icon{width: 25px;}
--图标未应用于第一个父选择器。应该是吗?还是我不理解@at root的全部工作原理

如有任何想法或反馈,将不胜感激


是的,整个过程确实需要用两个父选择器包装

这肯定是Sass中的一个bug,在最新版本(
gem install Sass--pre
)中,您的代码扩展到

.cc_sidebar .btn,
.cc_popup .btn {
  display: inline-block;
  cursor: pointer; }
  .cc_sidebar .btn, .cc_popup .btn--icon, .cc_sidebar .btn, .cc_popup .btn--icon {
    width: 25px; }
您可以看到重复的
.cc\u侧边栏.btn、.cc\u popup.btn--图标
.cc_sidebar.btn、.cc_popup.btn--图标
部分,因此看起来像个bug

我实际上测试了一下,是的,实际上有两个bug!我在Sass问题中填写了它们:并且,这样,当它们被修复时,您可以使用您的代码


由于多个选择器存在问题,唯一的解决方法是不使用它们:(

太棒了!感谢您确认我没有发疯,并提交了这些错误报告。我想知道这是否是一个错误,但希望在提交错误报告之前确认一下。谢谢!