SASS有一个名为@extend的功能,它允许一个选择器继承另一个选择器的属性,但不复制属性(如mixins)。
LESS也有这个功能吗?
发布于 2013-03-18 03:07:45
是的,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;
}发布于 2018-04-09 14:38:56
在Less框架中扩展函数的简单方法
.sibling-1 {
color: red
}
.sibling-2 {
background-color: #fff;
.sibling-1();
}输出
.sibling-1 {
color: red
}
.sibling-2 {
background-color: #fff;
color: red
}发布于 2021-11-03 13:34:27
Less允许我们做:extend(.class)或:extend(#id)
https://stackoverflow.com/questions/15464982
复制相似问题