【发布时间】:2012-09-22 05:16:00
【问题描述】:
我希望为边界半径创建 LESS mixin,允许在 mixin 声明中由另外两个参数将两个参数设置为默认值。以下是一个示例,它不起作用,但类似于我想要实现的目标:
.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 无法做到这一点,还是我做错了?
【问题讨论】:
标签: css variables parameters less