在 Stylus mixin 中连接变量

Concatenating variables in a Stylus mixin

我正在尝试制作一个 mixin 来生成一些带有变量的样式,我想连接两个变量,但我无法让它工作。这是一个例子:

centerSprite($icon)
    margin-top -(($ico_+$icon+_height) / 2)
    margin-left -(($ico_+$icon+_width) / 2)

我有一个带有图标高度和宽度的变量,我想将名称放入 mixin 的参数中以获取该变量并进行操作...

提前致谢!

我不知道为什么(也许是一个错误?)但是当你在函数内的 属性 值的括号前有一个减号时,stylus 无法编译:

此代码无法编译:

centerSprite()
    margin-top -((5 + 10 + 3) / 2)

body
    centerSprite()

但是这个没有编译功能:

 body
     margin-top -((5 + 10 + 3) / 2)

而且我发现如果在 属性 之后使用冒号也可以在函数中使用:

手写笔

centerSprite()
    margin-top: -((5 + 10 + 3) / 2)

body
    centerSprite()

CSS

body {
    margin-top: -9;
}

一个好人 on Github explained to me the lookup Stylus 中的内置功能,这就是我要找的:

$ico_test_width  ?= 20px
$ico_test_height ?= 15px

centerSprite($icon)
    margin-top : -(lookup('$ico_' + $icon + '_height') / 2)
    margin-left: -(lookup('$ico_' + $icon + '_width')  / 2)

body  
    centerSprite('test')