【问题标题】:LESS combine ruleset into two with different variablesLESS 将规则集组合成两个具有不同变量的规则集
【发布时间】:2014-06-30 13:59:47
【问题描述】:

我正在尝试将一个规则集组合成两个不同的规则集,并交换变量值。主要目的是LTR/RTL国际化。

用法:

h1 {
  margin-top: 10px;
  .directions({
    margin-@{left}: 5px;
  });
}

预期输出:

h1 {
  margin-top: 10px;
}
.ltr h1 {
  margin-left: 5px;
}
.rtl h1 {
  margin-right: 5px;
}

我能够使用 Less 1.7 中的 Passing Rulesets to Mixins 函数获得一些结果

.directions(@rules) {
  @left: left;
  .ltr & { @rules(); }
  @left: right;
  .rtl & { @rules(); }
}

问题在于 @left 变量总是设置为 .directions() mixin 中使用的最后一个值(在这种情况下为right)。有什么方法可以交换变量或将其传回 mixin 之外?

注意:我不想将 LTR/RTL 输出到两个单独的文件中,我正在尝试将它们合并到一个文件中。

【问题讨论】:

    标签: css less right-to-left


    【解决方案1】:

    要了解更少的变量范围和生命周期,请参阅:

    针对您的特定情况的解决方案很简单:

    .directions(@styles) {
        .ltr & {
            @left: left;
            @styles();
        }
        .rtl & {
            @left: right;
            @styles();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多