所以我最近正在研究一些代码,并试图了解更多关于LESS的信息,而且有一件事我无法完全解决这个问题。我看到了使用类似于:
的结构.class{
>*{
/*some css*/
}
}
注意:>*{}
嵌套在.class
块
我想知道这是做什么的,但有一些我不明白的事情。
我认为它正在做什么:我假设它正在接受该类的所有直接后代并相应地设置它们的样式。所以实际的(编译的)css可能类似于.class > *{}
我的问题:
我的假设是正确的,还是做了完全不同的事情?
如果这是正确的,为什么这个陈述不需要&像其他连接一样在它面前?
我很抱歉,如果以前出现这种情况,我根本不知道还有什么其他方式可以向Google提出同样的问题。
答案 0 :(得分:5)
您的假设是正确的。
&
可以从以>
或+
这样的组合子开头的嵌套选择器中省略,或者从复合选择器开始,其中预期结果是后代组合子,例如
.a { .b {} }
产生.a .b
。
答案 1 :(得分:3)
它实际上很简单:
嵌套的选择器元素始终与空格结合。例如。 的 [1A]:强>
a {
b {}
}
结果:
a b {}
同样, [1b]: :
a {
> b {}
}
结果:
a > b {}
等
<强> --- 强>
&
必须使用 ,如果您需要抑制该空格,例如 [2a]:
a {
&:hover {}
}
有:
a:hover {}
或如果不将父选择元素放在前面, [2b]:
a {
b & {}
}
c {
& & {}
}
d {
& {}
}
e {
f ~ g:not(&) > & & + &&& {}
}
// etc.
导致:
b a {}
c c {}
d {}
f ~ g:not(e) > e e + eee {}
<强> --- 强>
组合符从不影响任何事情,唯一的要求是组合符后面必须跟一个标识符,例如:
a { > b {} } // ok
a > { b {} } // error