2013-05-07 23 views
13

は、私は次のようしていると仮定します。選択要素

<div data-pid="">Unknown</div> 
<div data-pid="123">Known 123</div> 

data-pid属性が空でない要素のみを選択するためのCSSの方法はありますか?

答えて

20

あなたは少し後ろ向きなことをやって気にしない場合、これは、動作し、あなたはそれが:notをサポートしていないブラウザで動作する必要がありますdata-pid s緑。ここ

フィドル:http://jsfiddle.net/ZuSRM/

+1

に何も表示されません。この回答は、アレックスより6秒早いために受け入れられます。 '' inherit''がブラウザのサポートに使うのに最も良いものかどうかはわかりませんが、p –

17

は醜い見えるが、このようなものは、それを行う必要があります:あなたは古いブラウザをサポートする必要がある場合にも、クラスを追加することができ、ほとんどJavaScriptで

[data-pid]:not([data-pid=""]) 

jsFiddle Demo

。空でないと、すべてのdiv秒を行います

div[data-pid] { 
    color: green; 
} 

div[data-pid=""] { 
    color: inherit; 
} 

+0

十分に適切です。したがって、単一の属性セレクタはありませんか? –

+0

@Kolink http://www.w3.org/TR/css3-selectors/#attribute-selectors – kapa

4
/* Normal styles */ 
[data-pid] {} 

/* Differences */ 
[data-pid=""] {} 

jsFiddle

これにより、ブラウザのサポートが大幅に向上します。必要なものを選択するのではなく、それらのすべてをスタイルして、その差を第2のセレクタに配置します。