0

我知道 LESS CSS 中没有 if/else,而需要 if/else 的用例意味着使用受保护的 mixin 来解决。

我想为我的 CSS 提供一个配置文件,我可以在其中配置字体大小、字体系列、字体粗细和行高。我还希望有可能不定义上述属性之一。

这是第一个问题。是否有可能检查变量是否存在?我使用无效值来定义不应设置的属性(如字体系列的数字)

现在我想根据给定的值创建 CSS。如果所有 4 个都给出:

font: @font-weight @font-size~'/'@line-height @font-family;

如果没有给出@font-family:

font-size: @font-size;
font-weight: @font-weight;
line-height: @line-height;

等等。

为每种可能的组合使用 mixin 似乎非常臃肿和愚蠢。

那是没有问题。2.

所以实际上我希望这个工作:

@font-size: 1em;
@font-weight: bold;
@font-family: Arial, sans-serif;

body {
  .myMixin(@font-weight, @font-size, @line-height, @font-family);
}

应该输出:

body {
  font: bold 1em Arial, sans-serif;
}

解决这个问题的任何想法?还是您认为我正在尝试做的通常是个坏主意?如果是,为什么?

〜戴夫

4

1 回答 1

1

如果 LESS 正在通过 javascript 在客户端上进行评估,那么它可以通过使用反引号来包含 javascript 代码。在脚本中,您可以检查一个空白值并建立一个字符串作为输出。

如果您使用 Less.NET 并在服务器上转换为 CSS,则无法进行此 javascript 评估。

于 2012-05-21T08:32:23.743 回答