【问题标题】:Adding vendor prefixes with LESS mixin使用 LESS mixin 添加供应商前缀
【发布时间】:2012-09-14 06:52:05
【问题描述】:

我收到了这个混入的语法错误:

.vendors(@statement){
  @statement;
  -moz-@statement;
  -webkit-@statement;
}

有什么方法可以做到这一点,或者 mixin 变量必须在 : 的右侧吗?

【问题讨论】:

  • This answer for LESS 前缀显示了您可能不想这样做的原因,以及 LESS 中的模式匹配如何有助于前缀。

标签: less mixins less-mixins


【解决方案1】:

从 Less v2 开始,您可以使用 autoprefix plugin 为您的属性添加前缀,这似乎是一个更好的选择。 autoprefix 插件利用autoprefixer postprocessor 添加浏览器前缀。对于客户端编译(在浏览器中),您可以使用-prefixfree。

正如@ScottS here 已经提到的,自Less v1.6 起,您可以在选择器中使用变量插值,这使您能够:

.prefix(@property, @value)
{
    -webkit-@{property}:@value;
    @{property}:@value;
}
selector {
    .prefix(property,value);
}

输出:

selector {
  -webkit-property: value;
  property: value;
}

您还应该阅读:Am I overcomplicating my LESS for vendor prefixes?

【讨论】:

    【解决方案2】:

    没有办法做到这一点,但有一些解决方法。如果它有效,我认为它会是这样的:

    .vendors(@prop, @val){
      ~"-webkit-@{prop}:@{val}";
    }
    

    注意:这不起作用。

    关于这个话题的讨论很长:https://github.com/cloudhead/less.js/pull/698

    你也许可以使用这个库:less-properties

    【讨论】:

      【解决方案3】:

      这是一个蹩脚的答案,但我认为这是不可能的。

      【讨论】:

      • 这是一个非常好的问题,因为这在 SASS 中是可能的,我正在尝试用 Less ass 来模仿它而且我还找不到任何解决方案。因为我和知道问题出处的人一样跛脚。
      猜你喜欢
      • 2015-06-07
      • 2021-01-05
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多