是的,Less.js 在v1.4.0 中引入了extend。
:extend()
LESS 实现了伪类语法,而不是实现 SASS 和 Stylus 使用的 at-rule (@extend) 语法,这使 LESS 的实现可以灵活地直接应用于选择器本身,或在语句内部.所以这两种方法都可以:
.sidenav:extend(.nav) {...}
或
.sidenav {
&:extend(.nav);
...
}
此外,您还可以使用all 指令来扩展“嵌套”类:
.sidenav:extend(.nav all){};
您可以添加一个以逗号分隔的要扩展的类列表:
.global-nav {
&:extend(.navbar, .nav all, .navbar-fixed-top all, .navbar-inverse);
height: 70px;
}
在扩展嵌套选择器时,您应该注意到不同之处:
嵌套选择器.selector1 和selector2:
.selector1 {
property1: a;
.selector2 {
property2: b;
}
}
现在.selector3:extend(.selector1 .selector2){}; 输出:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector3 {
property2: b;
}
,.selector3:extend(.selector1 all){}; 输出:
.selector1,
.selector3 {
property1: a;
}
.selector1 .selector2,
.selector3 .selector2 {
property2: b;
}
,.selector3:extend(.selector2){}; 输出
.selector1 {
property1: a;
}
.selector1 .selector2 {
property2: b;
}
最后是.selector3:extend(.selector2 all){};:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector1 .selector3 {
property2: b;
}