我应该如何定义包含逗号的Stylus哈希值?

时间:2014-11-08 15:23:18

标签: variables stylus

我发现我无法使用花括号和冒号语法或括号和字符串语法设置Stylus hash值以在其中包含逗号。使用"'包装值会导致这些字符作为值的一部分输出。

目前,我有:

fonts-serif = Georgia, serif
fonts-sans-serif = Helvetica, Arial, sans-serif

fonts = {
    serif: fonts-serif,
    sans-serif: fonts-sans-serif
}

使用这些值:

font-family: fonts.serif

有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

这里有两个选项:

A)。您可以在值中转义,

fonts = {
  serif: Georgia\, serif
}

body
  font-family: fonts.serif

B)。您可以使用unquote内置函数并将值包装在引号中:

fonts = {
  serif: "Georgia, serif"
}

body
  font-family: unquote(fonts.serif)

答案 1 :(得分:0)

另一种方法可能是制作一个名为font-family的mixin

  font-family(x)
    title   = 'Georgia', 'Times new Roman'
    content = 'helvetica', Arial
    code    = 'JetBrains Mono', 'Fira Code', monospace

    fonts = title content code

    if x in fonts
      font-family x
    else
      error('invalid font-family')

用法:

.some-title
  font-family title

您可能会问为什么这种方法更好?

  • 字体变量现在不暴露于外界
  • 直观用法
  • 使用不当会给出自定义错误