首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >较少的保护,不使用来自mixin的多个参数。

较少的保护,不使用来自mixin的多个参数。
EN

Stack Overflow用户
提问于 2016-12-14 16:56:22
回答 1查看 119关注 0票数 0

我搜索过互联网并尝试了多个代码,但却找不出答案。希望你能成为帮手。

问题:当mixin有多个值时,不会触发保护。

Button.less

代码语言:javascript
复制
  /* CTA Box */
  &ctabox {
    .inline-box(@lightergrey);

    &__header {
      display: inline-block;
      margin: 5px 0;
      .font(@size: 18px, @weight: 700);
    }

    &__button {
      .button(@style: @orange);
      .button-icon-right();
    }

  }

正如您所看到的,我使用@style:@orange工作并触发这个保护:

代码语言:javascript
复制
.button(@style) when (@style = @orange) {
  /* Rendered mixin: Button @style when @orange */
  color: #FFF;

  &:hover, &:focus {
    background: @lightorange;
    color: #FFF;
  }

}

但当我用这个:

代码语言:javascript
复制
&__button {
  .button(@style: @orange, @width: 100%);
  .button-icon-right();
}

守卫不再被触发,尽管按钮“样式”仍然是橙色的。有人能解释一下这种行为吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-15 09:37:27

好的,在深入研究之后,似乎提到混合函数的所有参数都是可行的。我不只是使用.button(@style),而是将其更改为.button(@style,@width),警卫目前正在正常工作。

代码语言:javascript
复制
.button(@style, @width) when (@style = @orange) {
  /* Rendered mixin: Button @style when @orange */
  color: #FFF;

  &:hover, &:focus {
    background: @lightorange;
    color: #FFF;
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41148086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档