【问题标题】:How to chain a class to an element with a parent selector in SASS [duplicate]如何在 SASS 中使用父选择器将类链接到元素 [重复]
【发布时间】:2016-05-19 23:38:39
【问题描述】:

我正在尝试使用 SASS (scss) 执行以下操作。

.class {
  // Base class styles

  a.& {
    // Additions for when applied to a link
  }
}

但我得到一个编译器错误:

Invalid CSS after "a.": expected class name, was "&"

任何想法如何实现这一目标? 目前我刚刚摆脱了嵌套,但它对我的情况来说不是最佳的。

谢谢!

【问题讨论】:

  • @cimmanon 我很清楚可能有人问过它但找不到它,建议者也没有提出来。对不起。

标签: sass


【解决方案1】:

SASS 3.4 开始,您可以使用@at-root directive 将选择器范围限定为根。

此外,您还需要插入父选择器&,例如:a#{&}

.class {
  // Base class styles

  @at-root a#{&} {
    color: #000;
  }
}

编译成:

a.class {
  color: #000;
}

值得一提的是@at-root下可以嵌套多个元素:

.class {
  // Base class styles

  @at-root {
    a#{&} {
      color: #f00;
    }
    p#{&} {
      float: left;
    }
  }
}

编译成:

a.class {
  color: #f00;
}
p.class {
  float: left;
}

【讨论】:

  • 很好,谢谢!您可以在有或没有额外嵌套的情况下使用它,这很棒。有什么想法为什么不能在问题中采用直接的方式?
  • 请多花点力气解决重复的问题,而不是回答它们。
  • @cimmanon ...我不经常回答 SASS 问题,所以我不知道被问到什么。我只是想帮忙。
  • @krulik 我不确定它背后的原因,因为在 LESS 中 a.& 会按预期编译为 a.class
猜你喜欢
  • 2014-07-16
  • 2012-09-22
  • 2014-10-21
  • 2014-06-07
  • 2010-09-12
  • 2017-06-18
  • 2015-08-04
  • 2017-05-23
  • 2012-05-31
相关资源
最近更新 更多