手写笔:有没有办法制作这款DRYer

时间:2018-02-21 15:33:45

标签: stylus css-preprocessor

我有许多哈希,我想循环。

例如,我有一个颜色哈希:

colors = {
  red: #f00f00,
  green: #78f000,
  blue: #0090f0,
}

大小哈希:

fontSize = {
  small:  14px,
  base:   16px,
  large:  18px
}

然后我循环遍历这些哈希。这是一个简化的例子:

for name, color in colors
  .{name}
    background-color: color

for name, size in fontSize
  .{name}
    font-family: size

我想知道的是,是否有干燥机来做这件事。即,我不想一遍又一遍地重写for ... in循环(因为它与每个散列的结构相同。

有没有办法可以做到这一点(如果有的话,怎么做)?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用循环执行函数并使用参数获取类名并设置所需的属性:

手写笔

colors = {
  red: #f00f00,
  green: #78f000,
  blue: #0090f0
}

fontSize = {
  small:  14px,
  base:   16px,
  large:  18px
}

loop(hashname, prop)
  for class, value in hashname
    .{class}
      {prop}: value


loop(colors, background-color)

loop(fontSize, font-size)

<强>输出

.red {
  background-color: #f00f00;
}
.green {
  background-color: #78f000;
}
.blue {
  background-color: #0090f0;
}
.small {
  font-size: 14px;
}
.base {
  font-size: 16px;
}
.large {
  font-size: 18px;
}