在less.js中,我能够用变量替换值而没有问题.
@gutter: 20px;
margin-left:e(%("-%d"), @gutter);
Run Code Online (Sandbox Code Playgroud)
当尝试用变量替换属性时,我得到错误.我如何在Less中执行以下操作?
@gutter: 20px;
@direction: left;
e(%("margin-%d"), @direction):e(%("-%d"), @gutter);
Run Code Online (Sandbox Code Playgroud)
感谢Alvivi的解决方案和研究(您可以获得奖励).我决定添加以下作为实际答案,因为这是一个真正的设置方式而不是查看.blah()伪代码.
这是设置它的真正策略:
@gutter: 20px;
@dir: left;
@dirOp: right;
Run Code Online (Sandbox Code Playgroud)
然后创建mixins来增强边距和填充,如下所示:
.margin(left, @dist:@gutter) {
margin-left:@dist;
}
.margin(right, @dist:@gutter) {
margin-right:@dist;
}
.padding(left, @dist:@gutter) {
padding-left:@dist;
}
.padding(right, @dist:@gutter) {
padding-right:@dist;
}
.lr(left, @dist: 0) {
left: @dist;
}
.lr(right, @dist: 0) {
right: @dist;
}
Run Code Online (Sandbox Code Playgroud)
..那么你可以
#selector {
.margin(@dir);
}
Run Code Online (Sandbox Code Playgroud)
要么
#selector {
.margin(@dirOp, 10px);
}
Run Code Online (Sandbox Code Playgroud)
全部一起:
#selector {
.margin(@dir);
.margin(@dirOp, 50px);
.padding(@dir, 10px);
.padding(@dirOp);
float:@dir;
text-align:@dirOp;
position:absolute;
.lr(@dir);
}
Run Code Online (Sandbox Code Playgroud)
轻松轻盈LTR/RTL,轻松!活泉!