选择属性为非空的元素

Nie*_*sol 16 css css-selectors

假设我有以下内容:

<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
Run Code Online (Sandbox Code Playgroud)

CSS中是否有一种方法只选择data-pid属性非空的元素?

Ric*_*dle 26

如果你不介意略微向后做事,你需要它在不支持的浏览器中工作,这是有效的:not:

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

div[data-pid=""] {
    color: inherit;
}
Run Code Online (Sandbox Code Playgroud)

这将使所有divs非空data-pid绿色.

这里小提琴:http://jsfiddle.net/ZuSRM/


kap*_*apa 24

看起来很丑,但是这样的事情应该这样做:

[data-pid]:not([data-pid=""])
Run Code Online (Sandbox Code Playgroud)

jsFiddle演示

如果您需要支持旧浏览器,您还可以使用一些Javascript添加类.


ale*_*lex 6

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

/* Differences */
[data-pid=""] {}
Run Code Online (Sandbox Code Playgroud)

jsFiddle

这将具有更好的浏览器支持。无需选择所需的样式,而是为所有样式设置样式,然后将差异放在第二个选择器中。