【问题标题】:SCSS ampersand operatorSCSS & 运算符
【发布时间】:2017-08-05 16:35:38
【问题描述】:

我正在从 LESS 迁移到 SCSS。

在 LESS 中我可以做到这一点:

.btn {
  a&.disabled,
  fieldset[disabled] a& {
    pointer-events: none;
  }
}

CSS 结果:

a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}

SCSS 相当于什么?

【问题讨论】:

  • 试过了。它编译为 a &.disabledfieldset[disabled] a & 这是错误的。
  • 根据我分享的链接,SCSS 等效项与您生成的 CSS 相同
  • 没有对应的 SASS。原因是,这个符号应该是关于嵌套(维护父/子节点的结构)。当您像这样任意连接选择器时,我可以向您保证,在大型项目中您将很快失去对代码的概述。如果您需要添加 a 只是为了使您的选择器更具体,这已经暗示了您的 css 结构中的问题。

标签: sass


【解决方案1】:

试试这个:

SCSS:

.btn {
  //  move content out of `.btn` nesting 
  @at-root {
    //  use interpolation to `glue` a and & together 
    a#{&}.disabled,
    fieldset[disabled] a#{&} {
        pointer-events: none;
    }
  }
}

CSS 输出:

a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-24
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2017-03-29
    • 2020-01-25
    相关资源
    最近更新 更多