如何使用&;(和选择器)通过LESS功能?
以下是输出需要的内容:如何使用&;(和选择器)通过LESS功能?,less,Less,以下是输出需要的内容: div.star_mask { &.fill-0 { width: 0%; } &.fill-50 { width: 50%; } } 我做了很多次,所以我做了一个函数来生成它: #star { .star-fill(@width) { (~"&.fill-@{width}") { div { width: ~"@{width}%" }
div.star_mask {
&.fill-0 {
width: 0%;
}
&.fill-50 {
width: 50%;
}
}
我做了很多次,所以我做了一个函数来生成它:
#star {
.star-fill(@width) {
(~"&.fill-@{width}") {
div { width: ~"@{width}%" }
}
}
}
div.star_mask {
#star > .star-fill(0)
}
这将生成以下CSS:
div.star\u mask和.fill-0
而不是我需要的:div.star\u mask.fill-0
有没有办法做到这一点?我可以把&
放在调用函数的地方吗
最后,我自己编写了选择器代码:div.star\u mask.fill-@{width}
并将函数调用放在上面一级,从而解决了这个问题。不过,把它们安顿在窝里还是很酷的 当less遇到(~“”)作为选择器时,它不会解析内容,而是一字不差地接受它,因此不能在其中使用&in
我认为目前还没有一种方法可以完全满足您的需求,不过请记住,您可以使用&在选择器的末尾,例如
.a {
div& {
foo:bar;
}
}
变成
div.a {
foo: bar;
}
但我不确定这是否有帮助