所有 Less 文档和教程在涉及#namespace > .mixin()
命名空间时都使用语法。但是我发现自己对语法更满意.namespace.mixin()
,即:
.namespace() {
.mixin() {
foo: bar;
}
}
#usage {.namespace.mixin()}
我错过了什么吗?这两个变体之间是否有任何区别(特别是混合/变量影响范围的方式,反之亦然)?或者它只是某种根植于历史的传统?
显然.namespace > .mixin
,当它们被用作选择器时,它们是不同的野兽.namespace.mixin
。.namespace .mixin
但是当涉及到 mixin 调用/扩展时,情况似乎有所不同。我无法制作一个示例:
"#usage {#namespace > .mixing}"
"#usage {#namespace.mixing}"
"#usage {#namespace .mixing}"
等产生不相等的输出,假设.mixin
被定义为参数规则集。对.namespace
. 例如:
/* A */
#namespace {
.mixin1() {
foo1: bar;
.mixin1() {
foo2: bar;
}
}
.someruleset {
foo3: bar;
.mixin1 {
foo4: bar;
}
}
}
/* 1 */
#u1 {#namespace > .mixin1()}
/* 2 */
#u2 {#namespace .mixin1()}
/* 3 */
#u3 {#namespace.mixin1}
/* 4 */
#u4 {#namespace .mixin1}
/* 5 */
#u5 {#namespace.mixin1.mixin1()}
/* 6 */
#u6 {#namespace.someruleset.mixin1()}
/* B */
.namespace {
.mixin1() {
foo1: bar;
.mixin1() {
foo2: bar;
}
}
.someruleset {
foo3: bar;
.mixin1 {
foo4: bar;
}
}
}
/* 1 */
#u1 {.namespace > .mixin1()}
/* 2 */
#u2 {.namespace .mixin1()}
/* 3 */
#u3 {.namespace.mixin1}
/* 4 */
#u4 {.namespace .mixin1}
/* 5 */
#u5 {#namespace.mixin1.mixin1()}
/* 6 */
#u6 {#namespace.someruleset.mixin1()}
所有 1-6 个结果似乎都是相等的。