Stylus会转义calc函数的所有内容。
.test1
$offset = 5px
$mult = 3
height calc(1em + $offset * $mult)
.test1 {
height: calc(1em + $offset * $mult);
}
所以你可以使用类似于sprintf的操作符%
,但它并不是非常容易阅读。
.test2
$offset = 5px
$mult = 3
height 'calc(1em + %s * %s)' % ($offset $mult)
.test2 {
height: calc(1em + 5px * 3);
}
你可以创建一个
calc2()
mixin,使用
calc()
,但 stylus 会尝试执行该操作。
calc2($expr...)
'calc(%s)' % $expr
.test3
$offset = 5px
$mult = 3
height calc2(1em + $offset * $mult)
.test3 {
height: calc(16em);
}
所以你需要转义所有的运算符。我认为这比sprintf语法更易读。
calc2($expr...)
'calc(%s)' % $expr
.test4
$offset = 5px
$mult = 3
height calc2(1em \+ $offset \* $mult)
.test4 {
height: calc(1em + 5px * 3);
}
如果你想的话,可以将
calc2()
mixin重命名为
calc()
,它能正常工作。
calc($expr...)
'calc(%s)' % $expr
.test5
$offset = 5px
$mult = 3
height calc(1em \+ $offset \* $mult)
.test5 {
height: calc(1em + 5px * 3);
}
如果您不想创建混合器,您可以使用其他情况下的 calc()
(例如 Calc()
或 CALC()
)
.test6
$offset = 5px
$mult = 3
height Calc(1em \+ $offset \* $mult)
.test6 {
height: Calc(1em + 5px * 3);
}