flex属性太无序。 我想写一个较少的功能来解决这个问题。 就像:
.flex(@grow:1,@shrink:1,@basis:auto){
flex-grow:@grow;
flex-shrink:@shrink;
flex-basis:@basis;
}

关于"命令"和"对齐",我想使用符号前变量,就像:
//function======================
.flex(@order){
@number:replace(@order,#,);
order:@number;
}
//usage======================
.test{
.flex(#2);
}
//result======================
.test{
order:2;
}

如何实现这一目标? 非常感谢。
答案 0 :(得分:1)
如果我正确理解这一点,您似乎想要将两个mixin合并为一个,并且您正在使用#
来定义您正在设置order
,而非grow
。
如果您需要使用#
,可以将其格式化为字符串并使用mixin警卫,如下所示:
.flex (@grow: 1, @shrink: 1, @basis: auto) when (isnumber(@grow)) {
flex-grow: @grow;
flex-shrink: @shrink;
flex-basis: @basis;
}
.flex (@order) when (isstring(@order)) {
@number: replace(@order,'#','');
order: ~'@{number}';
}
然后像往常一样使用mixin作为顶部,当你想设置顺序时,把它写成:
.test {
.flex('#2');
}