LESS中的直接子选择器

时间:2011-11-13 07:38:10

标签: css css-selectors less

无论如何都没有在其输出中应用直接子选择器(>)?

在我的风格中,我想写一些类似的东西:

.panel {
    ...
    > .control {
        ...
    }
}

并且LESS生成类似于:

的内容
.panel > .control { ... }

5 个答案:

答案 0 :(得分:139)

<强>更新

实际上,原始问题中的代码运行正常。您可以坚持使用>子选择器。


找到答案。

.panel {
    ...
    >.control {
        ...
    }
}

请注意“&gt;”之间缺少空格和“。”,否则它将无效。

答案 1 :(得分:75)

官方方式:

.panel {
  & > .control {
    ...
  }
}

&始终引用当前选择器。

请参阅http://lesscss.org/features/#features-overview-feature-nested-rules

答案 2 :(得分:12)

使用&#39;&amp;&#39;时会遵循正确的语法。这里多余。

.panel{
   > .control{
   }
}

根据less guidelines,&#39;&amp;&#39;用于参数化祖先(但这里没有这样的需要)。在this less example中,&amp;:hover :hover 至关重要,否则会导致语法错误。但是,使用&#39;&amp;&#39;没有这样的语法要求。这里。否则所有的嵌套都需要&#39;&amp;&#39;因为它们实质上是指父母。

答案 3 :(得分:0)

如果您需要定位更多选择器:

.parent {
    >.first-child,
    >.second-child,
    >.third-child {
    ...
    }
}

答案 4 :(得分:-1)

另外,如果您要定位第一个子元素,例如<td>的第一个<tr>,则可以使用以下内容:

tr {
    & > td:first-child {font-weight:bold;}
}

这有助于在不需要时减少类声明。