无点查询字符串可以覆盖现有变量吗?

时间:2014-11-13 16:35:57

标签: asp.net less dotless

在ASP.net内部,我用无点的方式提供动态较少的样式表。我使用查询字符串传递变量。

<link rel="stylesheet" href="~/Content/style.less?&color1={{var1}}&color2={{var2}}>

变量已经在LESS中声明(color1:red,color2:blue),如果它们在查询字符串中传递,我想覆盖这些值。这当前不起作用,因为无点实际上预先来自查询字符串的变量,而less则使用 last 声明的变量。

我看到两个选项,但我不知道如何实现这些:

  1. 附加变量而不是前缀。这是前置任务的无点:https://github.com/dotless/dotless/blob/master/src/dotless.Core/Engine/ParameterDecorator.cs
  2. 将较少变量color1和color2设置为可选 - 仅当它们之前未设置时。类似的东西:

    color1: color1 || red;
    

    LESS(/ dotless)中是否存在类似的内容?

1 个答案:

答案 0 :(得分:0)

Less没有为变量设置默认值的选项,请参阅http://lesscss.org/features/#variables-feature-default-variables,了解您不需要它们的原因,您已经提到最后一个声明获胜(而Less更少使用延迟加载)。 / p>

但在https://github.com/dotless/dotless/wiki/Parameters我发现:

  

-v --disable-variable-redefines - 使变量的行为更像less.js,因此使用了最后一个变量定义

将此选项设置为false可以解决您的问题:

<dotless disableVariableRedefines="false" />