有没有办法使 LESS 应用直接子选择器( > )在它的输出中?
在我的 style.less 文件中,我想写类似这样的内容:
.panel {
...
> .control {
...
}
}
并让LESS生成类似于以下内容:
.panel > .control { ... }
有没有办法使 LESS 应用直接子选择器( > )在它的输出中?
在我的 style.less 文件中,我想写类似这样的内容:
.panel {
...
> .control {
...
}
}
并让LESS生成类似于以下内容:
.panel > .control { ... }
更新
实际上,原始问题中的代码可以正常工作。您可以仍然使用 >
子选择器。
找到答案了。
.panel {
...
>.control {
...
}
}
请注意">"和"."之间的空格缺失,否则它将无法工作。.panel > .control
。 - Ricardo Tomasidiv > p
和div>p
两种选择器。保持一致性总是使用选择器之间的空格(查看生成的CSS)。 - Ricardo Tomasi>
放在 .panel
后面? - hellouworld官方方法:
.panel {
& > .control {
...
}
}
&
始终指当前选择器。
请参见http://lesscss.org/features/#features-overview-feature-nested-rules
div > p
还是 div >p
?在 LESS 中,&
组合器是其规范的方式,而不是我个人的感觉。你的解释是修辞的。一些人会将他们的 CSS 写在同一行中... - Ricardo Tomasi在这里使用 '&' 是多余的,正确的语法应该是以下形式。
.panel{
> .control{
}
}
根据less 指南,'&' 用于给祖先赋参(但这里没有这种需要)。在这个 less 示例中,&:hover比:hover更为重要,否则会导致语法错误。然而,在这里使用 '&' 没有此类语法要求。否则,所有嵌套都需要 '&',因为它们实质上是指父级。.parent {
>.first-child,
>.second-child,
>.third-child {
...
}
}
另外,如果你想要选中第一个子元素,例如一个 <tr>
中的第一个 <td>
,你可以使用类似下面这样的代码:
tr {
& > td:first-child {font-weight:bold;}
}
当不需要时,这有助于减少类声明。