【问题标题】:Use sass extended placeholder with additional classes使用带有附加类的 sass 扩展占位符
【发布时间】:2016-04-23 18:20:25
【问题描述】:

我为默认按钮制作了这个 sass 占位符,应该还有其他按钮,例如成功或危险按钮。

简而言之,这是我的 sass 占位符:

%button {
  border: none;
  background-color: $default-color;
  cursor: pointer;
  color: $default-color-text;
}

%button-danger {
  @extend %button;
  background-color: $default-color-danger;
  color: $default-color-danger-text;
}

%button-success {
  @extend %button;
  background-color: $default-color-success;
  color: $default-color-success-text;
}

现在我想从这些按钮进行扩展,并制作一个元素,其中包含一个类到一个按钮,以及一个附加类到一个危​​险/成功按钮。

.button {
  @extend %button;

  &.danger {
    @extend %button-danger;
  }

  &.success {
    @extend %button-success;
  }
}

结果是

.button.danger, .button.success, .button {
  border: none;
  background-color: #a0a0a0;
  cursor: pointer;
  color: #ffffff; }

.button.danger {
  background-color: #d9534f;
  color: #fff; }

.button.success {
  background-color: #5cb85c;
  color: #fff; }

没错,但我想到了很多不同的按钮,可能会有更短的方式:

.button { /* only one class in this directive */
  border: none;
  background-color: #a0a0a0;
  cursor: pointer;
  color: #ffffff; }

.button.danger {
  background-color: #d9534f;
  color: #fff; }

.button.success {
  background-color: #5cb85c;
  color: #fff; }

有没有办法编译这个结果,还是不推荐?

【问题讨论】:

  • 我不明白这里的问题。如果您不想扩展 .button 样式,请不要扩展它们。
  • .success-btn, button 选择器来自哪里?

标签: css sass


【解决方案1】:

您可以从 %button-danger 和 %button-success 中删除扩展。

%button {
  border: none;
  background-color: white;
  cursor: pointer;
  color: white;
}

%button-danger {
  background-color: red;
  color: red;
}

%button-success {
  background-color: green;
  color: green;
}


.button {
  @extend %button;

  &.danger {
    @extend %button-danger;
  }

  &.success {
    @extend %button-success;
  }
}

【讨论】:

  • 但是现在无法直接从 %button-success 扩展
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2011-01-31
  • 1970-01-01
  • 2011-01-23
相关资源
最近更新 更多