Suppose I have the following:
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
Is there a way in CSS to select only elements where the data-pid
attribute is non-empty?
Suppose I have the following:
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
Is there a way in CSS to select only elements where the data-pid
attribute is non-empty?
This works, if you don't mind doing things slightly backwards and you need it to work in browsers that don't support :not
:
div[data-pid] {
color: green;
}
div[data-pid=""] {
color: inherit;
}
That will make all the div
s with non-empty data-pid
s green.
Fiddle here: http://jsfiddle.net/ZuSRM/
Looks ugly, but something like this should do it:
[data-pid]:not([data-pid=""])
jsFiddle Demo
With a little Javascript you could also add classes, if you need to support older browsers.
/* Normal styles */
[data-pid] {}
/* Differences */
[data-pid=""] {}
jsFiddle.
This will have much better browser support. Instead of selecting the ones you want, style all of them and then place the differences in the second selector.