我从Sass新转换为Stylus,对功能有点新意。我在访问函数中的更深层哈希值时遇到问题。这是一个例子:
$type-scale = {
small: {
base-font-size: 16px,
base-line-height: 1.3
}
medium: {
base-font-size: 18px,
base-line-height: 1.4
}
large: {
base-font-size: 22px,
base-line-height: 1.5
}
}
font-scale()
scale = arguments[0]
if scale in $type-scale
font-size: base-font-size
line-height: base-line-height
else
error('Not a defined scale')
.foo
font-scale('small')
答案 0 :(得分:1)
您需要使用[]
来获取变量定义的属性值。对于base-font-size
和base-line-height
,您可以使用普通的点符号:
$type-scale = {
small: {
base-font-size: 16px,
base-line-height: 1.3
}
medium: {
base-font-size: 18px,
base-line-height: 1.4
}
large: {
base-font-size: 22px,
base-line-height: 1.5
}
}
font-scale(scale)
if scale in $type-scale
font-size: $type-scale[scale].base-font-size
line-height: $type-scale[scale].base-line-height
else
error('Not a defined scale')
.foo
font-scale('small')