如果我在手写笔中有一些变量如下:
emphasisBackground = emphasis(0%, emphasisTop, emphasisBottom)
emphasisHover = emphasis(20%, emphasisTop, emphasisBottom)
emphasisActive = emphasis(-10%, emphasisTop, emphasisBottom)
强调是我自己的mixin,它返回一些属性,如background,filter(用于IE)等。 如何显示这些变量?
a
emphasisBackground
这不起作用,Stylus认为它是属性,而不是变量
a unquote(s('%s',emphasisBackground))
这也不起作用,它只打印IE的过滤器属性,但不打印变量的所有行
我是否必须将这些东西变成混合物?
答案 0 :(得分:1)
获得这种效果的一种方法是嵌套mixins
// Mixin that does the work (whatever that is)
emphasis(percent, eStart, eStop)
.
.
.
// Helper mixins
emphasisBackground
emphasis(0%, emphasisTop, emphasisBottom)
emphasisHover
emphasis(20%, emphasisTop, emphasisBottom)
emphasisActive
emphasis(-10%, emphasisTop, emphasisBottom)
然后就像你现在一样使用它。
a
emphasisHover
如果这是不可接受的,你可以添加更多关于你正在做什么的细节,我会看看我是否可以帮助你。
答案 1 :(得分:0)
在Stylus的最新版本中,有@block
支持(docs)。
有了它,你可以让任何函数返回一个block
对象,你可以保存到变量中,然后在任何你想要的地方使用,一个抽象的例子:
foo(w, h)
return @block {
width: w
height: h
}
bar = foo(10px, 20px)
baz = foo(20px, 30px)
a
{bar}
b
{baz}
将呈现为
a {
width: 10px;
height: 20px;
}
b {
width: 20px;
height: 30px;
}