【发布时间】:2012-05-18 11:19:17
【问题描述】:
我知道 LESS CSS 中没有 if/else,需要 if/else 的用例意味着使用受保护的 mixins 来解决。
我想为我的 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;
}
有解决这个问题的想法吗? 还是您认为我正在尝试做的通常是个坏主意?如果是,为什么?
~戴夫
【问题讨论】:
-
您是否考虑构建一个自定义的 PHP 预处理器,从某种 LESS 模板开始自动生成 LESS 文件?
-
我认为你在压缩你的 css 输出时工作太努力了。如果您很高兴您的字体样式将被分成不同的行以用于家庭、大小、重量,那么这很容易解决。让最小化器尽力而为,不要担心。或者,如果它对你来说真的那么重要,那么创建两个 mixin。
-
LESS 最小化器不会合并这些语句。我只是想知道是否有一种方法可以以一种相当简单的方式实现我想要的。但您可能说得对,这并不重要。
标签: less