Css 在属性选择器中使用较少的参数

Css 在属性选择器中使用较少的参数,css,less,Css,Less,我使用的是,它们实际上只是递归的参数化混合 我希望在选择器定义中使用传入的参数(@counter),如下所示: 循环(@counter)时(@counter>0){ //调用下一次迭代 .loop((@counter-1)); //每次迭代的代码 &[数据大小=“@计数器”]{ 宽度:(3px*@计数器); 高度:(3px*@计数器); } } div{ .loop(5);//启动循环 } 如果您将其复制并粘贴到一个类似的在线编译器中,您将得到以下结果: div[data size=“@cou

我使用的是,它们实际上只是递归的参数化混合

我希望在选择器定义中使用传入的参数(
@counter
),如下所示:

循环(@counter)时(@counter>0){
//调用下一次迭代
.loop((@counter-1));
//每次迭代的代码
&[数据大小=“@计数器”]{
宽度:(3px*@计数器);
高度:(3px*@计数器);
}
}
div{
.loop(5);//启动循环
}
如果您将其复制并粘贴到一个类似的在线编译器中,您将得到以下结果:

div[data size=“@counter”]{
宽度:3倍;
高度:3倍;
}
而我想要的是:

div[data size=“1”]{
宽度:3倍;
高度:3倍;
}

这是可能的吗?

事实证明,您必须用大括号对变量进行转义,如下所示:

循环(@counter)时(@counter>0){
//调用下一次迭代
.loop((@counter-1));
//每次迭代的代码
&[数据大小=“@{counter}]”{
宽度:(3px*@计数器);
高度:(3px*@计数器);
}
}
div{
.loop(5);//启动循环
}
“@counter”
-不,这样不行。字符串中的变量(以及选择器等其他特定语句中的变量)使用
@{var}
语法展开(原因很明显)。看见