2016-06-24 2 views
3

RadDivのdivを持つdivの外にあるすべてのdivに、明るい黄色の背景の紫色のフォント色のスタイルを適用する必要があります。div:divとその子孫を除外するセレクタではない

これは、クラスがRadDivのdiv内にネストされているすべてのdivが除外されることを意味します。

以下のように:notセレクタを使用してみましたが、動作しません。 Demo of my situation

質問:どのように私はこのdivの内側にRadDivのクラスを持つdiv要素とすべてのネストされたdivを除外する:notセレクタを指定するのでしょうか?

:いないセレクタがそれほど強力ではありません、それは道にあなたを動作しません:私は

<div>This is a div </div> 
<div class="RadDiv newDiv outerDiv"> 
    <div class="header"> 
     This is the header 
    </div> 

    This is an outer div 

    <div class="alert highlight"> 
     This div stands out 
    </div> 
    <div class="footer disclaimer"> 
    This is the footer part 
    </div> 
    <table> 
     <tr> 
     <td> 
     <div>This is div inside a table element</div> 
     </td> 
     </tr> 
    </table> 
</div> 
<div id="div1">This is div1</div> 
<div id="div2">This is div2</div> 
<style> 
div:not(.RadDiv) div { 
    background-color:lightyellow; 
    color:purple; 
    } 
    .outerDiv { 
     border:1px solid red; 
     font-family:Arial; 
    } 
    .footer { 
    color:lightgray; 
    font-size:small; 
    font-style:italic; 
    } 
    .header { 
    font-weight:bold; 
    } 
+0

これを試してみてください: 'div要素:ありません(.RadDiv DIV)' –

+0

は、私はちょうどそれを試してみましたが、それはしません作業。 – Sunil

答えて

1

は兄弟と同じレベルのすべてのdivを扱います。したがって、親を選択することによって開始:

body > div:not(.RadDiv) { 
    background-color: lightyellow; 
    color: purple; 
} 

子コンビネータ(>)を使用して、唯一のレベルは、標的され、そして:notセレクタ(その子孫を含む)任意の兄弟を除外するために使用することができます。

Revised Fiddle

参考文献:

+0

意味があります。 「だからこそ、すべての部門の親を見つけることだ。また、RadDivの外側にスパン要素がある場合は、たとえdivだけを紫色のフォントでスタイルしたかったとしても、紫色のフォントでスタイリングされます。 – Sunil

+0

いいえ私の答えのセレクタはdiv要素のみを対象としています。 –

+0

同じレベルで異なる要素があり、 'RadDiv' *を除いてそれらをすべて対象にしたい場合は、セレクタを次のように調整することができます:' body> *:not(.RadDiv) ' –

4

を試してみました

div:not(.RadDiv) div { 
    background-color:lightyellow; 
    color:purple; 
    } 

完全なコードは動作しませんしませセレクタもっと複雑な状況ではそれが好きです。あなたが望むものを達成するための最も簡単な方法は、おそらく.RadDivのスタイルを上書きするようになります。

div { 
    background-color:lightyellow; 
    color:purple; 
    } 
.RadDiv, .RadDiv div { 
    background: transparent; 
    color: black; 
} 
関連する問題