2011-08-09 4 views
0

すべてののinput [type = text]要素に属性を適用したいが、特定の要素を除外したい。 除外する要素にはクラスはありませんが、その親の親は行います。子どもを使用するCSSとnot()子を使用する

input[type=text]:not(tr.filters > td > input[type=text]) 
{ 
    min-width:400px; 
} 

が、それは動作しません:

HTMLは、私はこのCSSを試してみました

<tr class="filters"> 
    <td> 
     <input type="text" name="aName"> 
    </td> 
    <td> 
     <input type="text" name="anotherName"> 
    </td> 
     ... 
</tr> 

のように見えます。 このようにnot()を使用することはできませんか?

答えて

3

:not()をCSSセレクタとして使用することはできません。 :not() pseudo-classは、単純なセレクタ(つまり、ちょうど1つのtype.class#id[attribute]または:pseudo-classセレクタ)を受け入れます。 >+のような組み合わせは許可されません。

min-widthのデフォルト値はゼロであるので、あなたは、単に代わりにオーバーライドルールを使用し、それはそれに設定することができます。

input[type="text"] { 
    min-width: 400px; 
} 

tr.filters > td > input[type="text"] { 
    min-width: 0; 
} 
+0

それは、独自の実装として、あなたのセレクタは、しかしjQueryのではうまく動作します[を ':ない()'セレクタ](http://api.jquery.com/not-selector)という構文を受け付けます。 – BoltClock

+0

おかげで、束、作品の不思議。 – Waws

0

は、なぜあなたはこのようなものを使用していませんか?

tr:not(.filters) td input[type=text] 
{ 
    min-width:400px; 
} 
+0

おそらく 'input [type =" text "]' sがテーブルにない可能性があるためです。 – BoltClock

+0

意味があります... –

関連する問題