Css 我应该使用“&;”吗使用“>;选择直接子级”时?

Css 我应该使用“&;”吗使用“>;选择直接子级”时?,css,less,Css,Less,虽然写得少,但我注意到以下两个片段: A. .parent el{ &>.直接子项{…} } B .parent el{ >.directchild{…} } 将生成完全相同的css: .parent el>.directchild{ ... } 我有几个问题: A和B之间有什么区别吗 这是故意的吗 我应该使用哪一种,为什么 当您在另一个选择器中插入选择器时,使用“&”是可选的,这意味着您的意图是从“父项”开始 虽然当我们不使用“&”时,我得到的代码更少,但我更喜欢使用它,因为代码更干

虽然写得少,但我注意到以下两个片段:

A.
.parent el{
&>.直接子项{…}
}
B
.parent el{
>.directchild{…}
}
将生成完全相同的css:

.parent el>.directchild{
...
}

我有几个问题:

  • AB之间有什么区别吗
  • 这是故意的吗
  • 我应该使用哪一种,为什么
当您在另一个选择器中插入选择器时,使用“&”是可选的,这意味着您的意图是从“父项”开始

虽然当我们不使用“&”时,我得到的代码更少,但我更喜欢使用它,因为代码更干净

A和B之间有什么区别吗? 在编译的CSS中不会有任何区别。LESS中的
被编译CSS中的外部选择器替换。因此,A实际上与执行以下操作相同:

.parent-el {
    .parent-el > .direct-child { ... }
}
当然,这是多余的,并且首先违背了使用更少的目的

这是故意的吗?
&
实际上并没有像我相信的那样用于您的示例中。在LESS中使用
&
的一个好例子如下:

.parent-el {
    // define .parent-el styles
    &__child { 
        // define .parent-el__child styles
    }
}
在上面的示例中,
&
允许您缩短
.parent-el\u child
的声明

我应该使用哪一种,为什么?
您应该使用B。在这种情况下,使用
&
是多余和不必要的。

这与不使用
完全相同
.A{.B}
.A{&.B}
相同,因此是的,这是经过设计的,因为这样做的次数较少