我希望为边界半径创建 LESS 混合,允许在混合声明中由其他两个参数将两个参数设置为默认值。以下是一个示例,它不起作用,但类似于我想要实现的目标:
.border-radius-ext (@topleft: 0, @topright: 0, @bottomright: @topleft, @bottomleft: @topright) {
border-top-left-radius: @topleft;
border-top-right-radius: @topright;
border-bottom-right-radius: @bottomright;
border-bottom-left-radius: @bottomleft;
}
我意识到我可以将所有值设置为 0。那不是我所追求的。我希望如果 mixin 是这样使用的:
blockquote {
.border-radius-ext(3px, 5px);
}
mixin 会输出:
blockquote {
border-top-left-radius: 3px;
border-top-right-radius: 5px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 5px;
}
...同时如果 mixin 像这样使用,仍然允许@bottomright
和被覆盖的默认值:@bottomleft
blockquote {
.border-radius-ext(3px, 5px, 7px, 2px);
}
在这种情况下,输出将是:
blockquote {
border-top-left-radius: 3px;
border-top-right-radius: 5px;
border-bottom-right-radius: 7px;
border-bottom-left-radius: 2px;
}
LESS 是不可能的,还是我做错了?