我正在尝试创建一个简单的less mixins以便清除,所以我有:
.clear {
&:after {
content: "";
display: table;
clear: both;
} // :after
}
.clear(@float) when (@float = "left", @float = "right") {
clear: @float;
}
基本上我想在我使用“.clear”或“.clear(both)”时清除它们,当我使用.clear(“left”)或“.clear(”right“)时,我想要清除它。
我该怎么做?
谢谢你, 米格尔
答案 0 :(得分:2)
#1 最直接的方法是使用default
mixin guard:
.clear(...) when (default()) {
&:after {
content: "";
display: table;
clear: both;
}
}
.clear(@float) when (@float = left), (@float = right) {
clear: @float;
}
#2 或:
.clear(...) when (default()) {
&:after {
content: "";
display: table;
clear: both;
}
}
.clear(left) {clear: left}
.clear(right) {clear: right}
#3 或者在这种情况下甚至更干净/最佳(以及旧的Less版本兼容)Pattern Matching适用于所有版本:
.clear() {
&:after {
content: "";
display: table;
clear: both;
}
}
.clear(both) {.clear()}
.clear(left) {clear: left}
.clear(right) {clear: right}
...以及我使用
.clear("left")
或".clear("right")
时的第二个。
不要在那里使用引号,正确的用法是:
.clear;
.clear();
.clear(both);
.clear(left);
.clear(right);