我想创建一个低于1.5的mixin,它将取代当前的css。
.classx1{margin:10px;}
.classx2{margin:20px;}
.classx3{margin:30px;}
.classx4{margin:40px;}
.classx5{margin:50px;}
...
.classx30{margin:300px;}
已经尝试过这个但是没有用:
@iterations: 30;
.loopingClass (@index) when (@index > 0) {
classx@{index} {
margin: -@index px;
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@iterations);
并在html中添加了类:
<div class="container classx20">CONTENT</div>
带有容器和classx20的div应该有margin: 200px
那么什么不好? TY。
答案 0 :(得分:3)
你的计算对你所说的输出应该是没有意义的。这将提供您想要的输出:
@iterations: 30;
.loopingClass (@index) when (@index > 0) {
.classx@{index} { //Added dot here to make it a class
margin: unit(@index * 10, px); //KEY CHANGE HERE
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@iterations);
如果.classx20
应该是margin: 200px
,那么您需要将索引乘以10
,而不是尝试用负值否定它。
答案 1 :(得分:1)
您的代码中有两个错误
1)在classx
2)保证金值与px
classx@{index} {
margin: -@index px;
}
所以CSS结果如下所示:
classx30 {
margin: -30 px;
}
classx29 {
margin: -29 px;
}
classx28 {
margin: -28 px;
}
...
转义字符串的正确方法:
@iterations: 30;
.loopingClass (@index) when (@index > 0) {
.classx@{index} {
margin: ~"@{index}px";
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@iterations);