我想编译下一个LESS规则: - 当前元素之后的每个元素,第一个孩子除外
看起来应该是这样的:
(& ~ *):not(:first-child) {
margin-left: 5px;
}
或者这个:
& ~ *:not(:first-child) {
margin-left: 5px;
}
不幸的是,两个人都没有工作。
答案 0 :(得分:7)
:first-child
伪类始终引用其父级的第一个子级。它不能用于忽略引用元素后面的第一个子(兄弟)。
如果要选择除引用元素后面的第一个元素以外的所有元素,则应按如下方式编写:
.reference + * ~ *{
color: red;
}
.reference
是引用元素,+ *
引用引用元素的第一个兄弟,它可以是任何类型,~ *
引用所有后续兄弟元素任何类型。
在Less中,您可以使用上面提供的选择器(或),您可以像下面这样编写它:
.reference {
& + * ~ * {
color: red;
/* and any other rules */
}
}
以下代码段演示了这一点。
.reference + * ~ *{
color: red;
}

<div class='reference'>Reference Element</div>
<p>Some other element which is the first one after reference element</p>
<div>The elements to be selected</div>
<p>The element to be selected</p>
&#13;