css セレクター構文ほど LESS の問題ではありません。は、クラス自体p:not(.nested)
のないすべてのp
要素を言っています。あなたが述べているのは、クラスが存在する上にあるということです。したがって、これが必要です。.nested
.nested
div
p
.outerclass {
h3 {
color: blue;
}
:not(.nested) p,
> p {
color: green;
}
}
更新: を削除しdiv
て直接の子インスタンスを追加したため、CSS 出力は例外を除いてすべてをp
適切にターゲットにします。p
.outerclass
p
要素の CSS 出力は次のようになります。
.outerclass :not(.nested) p,
.outerclass > p {
color: green;
}
上記は、要素の子である要素を除く、直接の子p
要素とネストされたp
要素を対象とします。.outerclass
.nested
問題
BoltClock が注目している問題は、要素p
の直接の子よりも深くネストされている場合です。クラス内にあるにもかかわらず、最後の要素がまだターゲットにされているこのフィドルを参照してください。.nested
p
.nested
p
要素が常に直接の子である場合.nested
、問題はありません。または、.nested
が常に の直接の子である.outerclass
が、p
より深くネストされている可能性がある場合は、上記のセレクターを に変更して、 の配下のすべてで機能> :not(.nested) p
する CSS を生成.outerclass > :not(.nested) p
できます。p
.nested
問題は、.nested
in と.outerclass
withinp
の.nested
両方がそれらの親に対して任意の深さにある場合です。それを適切に処理できるCSSセレクターはありません。