Есть ли различия между A и B?
В скомпилированном CSS не будет никакой разницы.&
в LESS заменяется внешним селектором в скомпилированном CSS.Таким образом, A - это то же самое, что и:
.parent-el {
.parent-el > .direct-child { ... }
}
Это, конечно, избыточно и в первую очередь лишает смысла использование LESS.
Является ли это намеренным и умышленным?
На самом деле &
не используется, как я полагаю, это было задумано в вашем примере.Хороший пример использования &
в LESS будет выглядеть примерно так:
.parent-el {
// define .parent-el styles
&__child {
// define .parent-el__child styles
}
}
В вышеприведенном примере &
позволяет сократить объявление .parent-el__child
.
Какой из них использовать и почему?
Вы должны использовать B .В этом случае использование &
является излишним и ненужным.