我想編譯未來不太規則: - 當前元素之後的每一個元素,除了第一個孩子選擇元素之後的每一個元素,除了第一個孩子
它應該是這個樣子:
(& ~ *):not(:first-child) {
margin-left: 5px;
}
或本:
& ~ *:not(:first-child) {
margin-left: 5px;
}
可惜都不起作用。
我想編譯未來不太規則: - 當前元素之後的每一個元素,除了第一個孩子選擇元素之後的每一個元素,除了第一個孩子
它應該是這個樣子:
(& ~ *):not(:first-child) {
margin-left: 5px;
}
或本:
& ~ *:not(:first-child) {
margin-left: 5px;
}
可惜都不起作用。
:first-child
僞類總是指其父類的第一個孩子。它不能用於忽略參考元素後面的第一個孩子(兄弟姐妹)。
如果您要選擇除第一個元素中的所有元素是繼參考元素,則其應寫在下面:
.reference + * ~ *{
color: red;
}
的.reference
是參考元素,將+ *
指的是第一個兄弟的參考元素,它可以是任何類型,~ *
指任何類型的所有後續同級元素。
在更短的,則既可以原樣使用上文提供(或)選擇器,你可以把它寫象下面這樣:
.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>
正確和非常完整的答案。這工作得很好,也很高興知道更多關於高級CSS!謝謝。 – Oleg
沒有,'第一child'不工作的方式。第一個孩子總是其父母的第一個孩子。 – Harry