使用父选择器时LessCss extend BREAKED
我正在使用&:extend(.klass) 我有一个方法:使用父选择器时LessCss extend BREAKED,less,Less,我正在使用&:extend(.klass) 我有一个方法: .method(@mixin) { html[something] & { @mixin() } } .klass { .method({}); } 到目前为止还不错。但是,当我使用此选项时: .anotherclass { &:extend(.klass) } 我没有抱怨,它适当地扩展了klass 结果css: html[something] .klass { ... }
.method(@mixin) {
html[something] & { @mixin() }
}
.klass {
.method({});
}
到目前为止还不错。但是,当我使用此选项时:
.anotherclass { &:extend(.klass) }
我没有抱怨,它适当地扩展了klass
结果css:
html[something] .klass { ... }
.klass, .anotherclass { ... }
但是,理想情况下,它还应该扩展html[something].klass
因此,理想的结果应该是:
html[something] .klass, html[something] .anotherclass { ... }
.klass, .anotherclass { ... }
对吧?
否则,您可能会使用&:extend(.klass)get no complaint,期望应用正确的规则
我在java上使用的更少,它可能使用的是旧版本
这在新版本中是否“更好”
注意,我知道我可以将klass转换为方法调用 发布的最小代码可能有问题,但此处发布的代码无法编译,因为
.method()
与上面的选择器不匹配,需要提供一个参数。但也就是说添加&:extend(.klass all)
(使用all
关键字)应该可以在最新版本的编译器中生成所需的输出。谢谢Harry,这确实有效!然而,我认为这应该是默认的。事实上,我已经知道了一切,但已经忘记了。想象一下,你有一群开发人员,你知道他们需要沟通,以便在任何地方都能使用(这是一件安全的事情,考虑到其他一切,这是一件直观的事情,可以让你达到预期的行为)。我知道向后兼容性现在可能是个问题,但您可以引入一个新的单独关键字,inherit或类似的。但是团队中有些人经常出现堆栈溢出,他们可以回答您的问题:)好的,谢谢您让我知道。无论是谁读到这篇文章,这里是我刚刚发现的另一个论点。如果一个类在不使用all的情况下扩展了另一个类,那么第三个类可以在不使用all的情况下扩展第二个类,并将其放在顶层。因此,所有这些都是方法调用所必需的,这有点虚假。现在我将强制使用all,但是在扩展类的类的扩展和调用方法(使用父选择器)来回答“all
应该是默认值”的类的扩展之间有区别,不,有很多原因不应该这样做(从技术上讲,当实现其他不太方便的extend
关键字时,all
几乎不会被使用)。有关更多详细信息,请参阅。