親クラスに続く親の親クラスだけを対象としたい子クラスを対象にしたいとします。以下のコードでは、.nested-parent
要素の.bar-on element
要素は、最初の.foo-on
のために可視性が示されていますが、2番目の.foo-off
クラスのみがこれらの子要素に影響を与えることが必要です。タイプの最後の親に続く子のCSSセレクタ
<style>
.foo-on .bar-on {visibility: visible;}
.foo-on .bar-off {visibility: hidden;}
.foo-off .bar-off {visibility: visible;}
.foo-off .bar-on {visibility: hidden;}
</style>
<div class="foo-off">
<div class="bar-on">Hidden</div>
<div class="bar-off">Visible</div>
<div class="foo-on">
<div class="nested-parent">
<div class="bar-on">Visible</div>
<div class="bar-off">Hidden</div>
</div>
</div>
</div>
私は一種の直系の子孫セレクタ.foo-on > .bar-on
を使用することによってこの問題を解決することができますが、それは彼らが直接されていないので、それはそうネストされた要素(入れ子親クラスの下のもの)は全く影響されない可能子どもは.foo-off
です。
私は、特定のクラスの子供のみを選択することができますが、最も近い親だけを選択することができる何らかの複雑なセレクタがありませんか?それともCSSだけではこれができないのでしょうか?
例:https://jsfiddle.net/oyLf6sm1/
あなたの質問を簡略化できますか?理論はここでは複雑です。 –
これを解決する方法がありますが、クラスを追加したり、マークアップを使用するなどして、CSSの親要素を選択する方法はありません。マークアップを変更できない限り、javascriptに頼らざるを得ないかもしれません。 – Chris
一言で言えば、私はオンとオフのクラスがあります。私はそれらのクラスの子供たちが親の親の影響を受けて欲しいです。私の例では、最初のfoo-offクラスは、最も近いfoo-onクラスの影響を受けるだけですら、2番目のfoo-onの子クラスに影響を与えています。 – ryandlf