2016-07-10 4 views
1

私には奇妙な質問があります。クラスに基づいて階層のセグメントを選択するセレクタを作成するにはどうすればよいですか。ない()擬似クラス:例えば私はこのCSS選択階層セグメント

.start-selection, .start-selection *:not(.end-selection, .end-selection *){ 
    /*styling...*/ 
} 

のようなものを考えていたが、あなたは、化合物のセレクタを持ってカントので、それが動作するようには思えない

<node class="start-selection"> 
    <node> 
     <node>content affected</node> 
    </node> 

    <node> 
     <node>content affected</node> 
    </node> 

    <node class="end-selection"> 
     <node> 
      <node>content not affected</node> 
     </node> 
    </node> 

    <node> 
     <node>content affected</node> 
    </node> 
</node> 

ような何かをしたいです。 JavaScriptを使用するためにこれを達成できる唯一の方法はありますか?ありがとう。

答えて

0

純粋なCSSで行うのですか不可能ですが、少しスクリプトはトリック

var els = document.querySelectorAll(".end-selection *"); 
for (i = 0; i < els.length; i++){ 
    els[i].className += " end-selection-child"; 
} 

そしてCSS行う必要があります。

.start-selection *:not(.end-selection):not(.end-selection-child){ 
    background:blue; 
} 

デモ:私は見https://codecanister.com/Project/d547eed9/3/result

+0

ああを。ありがとう。これは一種のバマーですが、私はこの時点で私が求めることができる最高のものだと思います。 –

0

CSSを使用するのは本当に不可能です。 100%。