跳到主要内容

插值

Stylus 支持插值,使用 {} 字符来包围表达式,这样表达式就成为标识符的一部分。例如,-webkit-{'border' + '-radius'} 的计算结果为 -webkit-border-radius

一个很好的例子是使用厂商前缀扩展属性。

vendor(prop, args)
-webkit-{prop} args
-moz-{prop} args
{prop} args

border-radius()
vendor('border-radius', arguments)

box-shadow()
vendor('box-shadow', arguments)

button
border-radius 1px 2px / 3px 4px

结果为:

button {
-webkit-border-radius: 1px 2px / 3px 4px;
-moz-border-radius: 1px 2px / 3px 4px;
border-radius: 1px 2px / 3px 4px;
}

选择器插值

插值也可以用于选择器。例如,我们可以迭代地为表格中的前 5 行分配 height 属性,如下所示:

table
for row in 1 2 3 4 5
tr:nth-child({row})
height: 10px * row

结果为:

table tr:nth-child(1) {
height: 10px;
}
table tr:nth-child(2) {
height: 20px;
}
table tr:nth-child(3) {
height: 30px;
}
table tr:nth-child(4) {
height: 40px;
}
table tr:nth-child(5) {
height: 50px;
}

您还可以通过构建字符串将多个选择器组合成一个变量,并在需要的地方插值:

mySelectors = '#foo,#bar,.baz'

{mySelectors}
background: #000

结果为:

#foo,
#bar,
.baz {
background: #000;
}