【问题标题】:SASS referencing specific parent selector [duplicate]SASS引用特定的父选择器[重复]
【发布时间】:2015-05-04 08:07:15
【问题描述】:

我有以下代码处理货币字段父选择器:

.currency-field {
  .ng-invalid & {
    border: 1px solid $color-failure;
  }
}

我在 html 中有几个 class="currency-field" 标记,所有这些标记都被 ng-invalid 类引用,即使只有一个字段具有 ng-invalid 类。我想修改上面的代码,以便只引用带有 .ng-invalid 类的 .currency-field 标记。 当子输入标签包含 ng-invalid 类时,我想在父货币字段上放置边框。

【问题讨论】:

  • 所需的 CSS 究竟是什么?
  • 在您的第二行代码 (.ng-invalid &) 中,& 将替换为父选择器。这意味着编译后的 CSS 中的选择器将是 .ng-invalid .currency-field(意思是,一个类为 currency-field 的元素在另一个类为 ng-invalid 的元素中)。这可能不是您想要的,请参阅 Mike 的答案以获得解决方案。
  • Mike 的回答不起作用,因为 currency-field 是父选择器。我需要访问父选择器
  • 好的,那么您实际上要问的是:stackoverflow.com/questions/1014861/…
  • 使用 JS 在货币字段上添加了一个额外的类。问题解决了。谢谢

标签: html css angularjs sass


【解决方案1】:

如果您想引用带有 .ng-invalid 类的 .currency-field 标记,请更改语法 (.currency-field.ng-invalid)

.currency-field {
  &.ng-invalid {
    border: 1px solid $color-failure;
  }
}

【讨论】:

  • 我不能真正做到这一点,因为 ng-invalid 类被动态设置为嵌套在货币字段标签中的输入标签。下面是 html 的样子:
  • 那么当子输入标签包含ng-invalid类时,你想在currency-field上加一个边框吗?
  • 是的,正是迈克。谢谢。
  • 不幸的是,纯 css 无法做到这一点......您应该更改切片并将样式直接放在 ng-invalid 上,或者使用 JS 在 currency-field 上添加一个额外的类当子元素具有ng-invalid 类时。
  • 使用 JS 在货币字段上添加了一个额外的类。问题解决了。接受了您的回答以及附加信息。谢谢
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2016-08-25
  • 2013-03-19
  • 2014-04-20
  • 2012-06-06
相关资源
最近更新 更多