css – 关于LESS中嵌套直接后代的问题

所以我最近正在研究一些代码,并试图了解更多有关LESS的信息,而且有一件事我无法完全理解.我看到使用结构如下的东西:

 

 

.class{
    >*{
        /*some css*/
    }
}

注意:> * {}嵌套在.class块中

我想知道这是做什么的,但有一些我不明白的事情.

我认为它在做什么:我假设它正在接受该类的所有直接后代并相应地设置它们的样式.所以实际的(编译的)css可能类似.class> * {}

我的问题:

>我的假设是正确的,还是做了完全不同的事情?
>如果这是正确的,为什么这个陈述不需要&像其他连接一样在它面前?

我很抱歉,如果这是以前出现的事情,我只是不知道还有什么其他方式来问谷歌同样的问题.

  它实际上很简单:

 

嵌套的选择器元素总是与空格结合.例如. [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
   
上一篇:jQuery之小米官网重构


下一篇:WEB前端优化--HTML/CSS优化