Stylus:从函数中的哈希中获取深度值
Stylus: fetching deep values from a hash in a function
我刚刚从 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')
您需要使用[]
来获取变量定义的属性值。对于 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')
我刚刚从 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')
您需要使用[]
来获取变量定义的属性值。对于 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')