Less のすべてのドキュメントとチュートリアル#namespace > .mixin()
では、名前空間を取り込むときに構文を使用します。.namespace.mixin()
ただし、構文に慣れていることがわかりました。つまり、次のようになります。
.namespace() {
.mixin() {
foo: bar;
}
}
#usage {.namespace.mixin()}
何か不足していますか?これら 2 つのバリアントの間に違いはありますか (特に、ミックスイン/変数がスコープに影響を与える方法とその逆の方法)? それとも、歴史に根ざした伝統のようなものですか?
明らかに.namespace > .mixin
、.namespace.mixin
と.namespace .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 の結果はすべて等しいようです。