首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手写笔混音块

手写笔混音块
EN

Stack Overflow用户
提问于 2014-02-02 22:08:27
回答 1查看 1.8K关注 0票数 4

我有一个与颜色配对的类列表,我想设置不同的属性(colorbackgroundborder-color,.)在混合器中定义的颜色。

示例

代码语言:javascript
复制
colorHome = #FFF
colorParam = #999
colorDash = #000

links = {
  'home': colorHome,
  'param': colorParam,
  'dash': colorDash
}

.dashboard-menu li
  border 1px solid
  +addLinks()
    color clr
    background clr
    border-color clr

将输出到

代码语言:javascript
复制
.dashboard-menu li {
  border: 1px solid;
}
.dashboard-menu li.home {
  color: #fff;
  background: #fff;
  border-color: #fff;
}
.dashboard-menu li.param {
  color: #999;
  background: #999;
  border-color: #999;
}
.dashboard-menu li.dash {
  color: #000;
  background: #000;
  border-color: #000;
}

我现在的混合器,使用块.

代码语言:javascript
复制
addLinks()
  for key, value in links
    clr = value
    &.{key}
      {block}


.dashboard-menu li
  border 1px solid
    +addLinks()
      color clr
      background clr
      border-color clr

但出于某种原因,clr被设置为background的第一个颜色(colorHome / #FFF),而border-color则设置为color的最后一个颜色(colorDash / #000)。

输出

代码语言:javascript
复制
.dashboard-menu li {
  border: 1px solid;
}
.dashboard-menu li.home {
  color: #000;
  background: #fff;
  border-color: #fff;
}
.dashboard-menu li.param {
  color: #000;
  background: #fff;
  border-color: #fff;
}
.dashboard-menu li.dash {
  color: #000;
  background: #fff;
  border-color: #fff;
}

考虑到块混合是相对新闻,他们能被用来实现我想要的吗?还是我应该考虑使用完全不同的解决方案?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-09 12:35:10

您应该考虑使用不同的解决方案。要传递给块混合器的内容是在混合程序代码之前计算的,所以从运行到运行都是一样的。

我不知道你到底想达到什么目的,但这里有一个例子,说明你可以怎样做你已经尝试过的事情:

代码语言:javascript
复制
addLinks(hash)
  for key, value in links
    new_hash = clone(hash)
    for hash_key, hash_value in new_hash
      if hash_value == clr
        new_hash[hash_key] = value

    &.{key}
      {new_hash}
      {block}

.dashboard-menu li
  border 1px solid
  addLinks({
    color: clr
    background: clr
    border-color: clr
  })

您可以在任何属性中使用非块混合器来应用来自links对象的颜色,如果需要其他内容,则可以使用块混合符号:

代码语言:javascript
复制
.dashboard-menu li
  border 1px solid
  +addLinks({
      color: clr
      background: clr
      border-color: clr
    })
    padding: 10px

我们正在考虑添加一种像散列一样修改传递的块的方法,但我们还没有到这里:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21516907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档