【问题标题】:Implementing Less when condition with child conditions在带有子条件的情况下实施 Less
【发布时间】:2018-04-23 22:49:07
【问题描述】:

我不确定我这样做是否正确。我想在 when 内执行 if 语句,但它们似乎不起作用,这是一个示例:

我遇到的问题是嵌套条件,主要是当条件正常时

@han_cart_icon: 'fa-shopping-cart';
@han_fa_version: 'v5';

.change_basket_icon() when (@han_cart_icon = fa-shopping-cart) {
  if (@han_fa_version == 'v4'){
    i.ty-icon-moon-commerce,
    .ty-icon-basket {
      font-family: FontAwesome;

      &:before {
        content: "\f07a";
      }
    }
  }
  if(@han_fa_version == 'v5'){
    i.ty-icon-moon-commerce,
    .ty-icon-basket {
      font-family: "Font Awesome\ 5 Free";

      &:before {
        content: "\f07a";
      }
    }
  }
  .small_fixes_mini_cart();
}

【问题讨论】:

  • 不一样,我的 when 语句工作正常,问题在于您建议的文章未涵盖的嵌套条件
  • 只需将when(){} 语句放在另一个when(){} 中。 LESS 不支持关键字if,也不理解== 符号。
  • 我确实尝试过,类似于: .change_user_icon() when (@han_user_icon = fa-user-circle-o) { @when (@han_fa_version = v4) {

标签: html css less


【解决方案1】:

Less 文档说您可以将CSS Guards as if statements& when() 功能一起使用。考虑到这一点,我使用此方法更新了您的代码以支持嵌套的“if”语句:

@han_cart_icon: 'fa-shopping-cart';
@han_fa_version: 'v5';

// Parent "if" statement
.change_basket_icon() when (@han_cart_icon = 'fa-shopping-cart') {

    // First nested "if" statement
    & when (@han_fa_version = 'v4'){
        i.ty-icon-moon-commerce,
        .ty-icon-basket {
            font-family: FontAwesome;

            &:before {
                content: "\f07a";
            }
        }
    }

    // Second nested "if" statement
    & when (@han_fa_version = 'v5'){
        i.ty-icon-moon-commerce,
        .ty-icon-basket {
            font-family: "Font Awesome\ 5 Free";

            &:before {
                content: "\f07a";
            }
        }
    }
}

注意'fa-shopping-cart'必须用引号引起来,比较时必须使用简单的=符号,而不是两个。

【讨论】:

  • 我得到 LESS 解析错误:在第 55 行 & when (@han_fa_version = 'v4'){ design/themes/responsive/css/addons/han_font_awesome/styles.less 失败
  • 如果我删除单括号,没有错误,但它不符合条件并调整 css
  • && 不同。你确定你的代码看起来像我的吗?
  • @James,除了答案: 1. 它不一定是腹胀(example)。 2. 最好直接定义字体名称,而不是通过v4/v5/velse 标志-example 间接强制它(拥有这些标志有什么意义?-过度工程警察)。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
相关资源
最近更新 更多