选择元素,其中属性非空(Select elements where attribute is non

2019-09-02 05:12发布

假设我有以下几点:

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

是否有CSS的方式只选择元素,其中的data-pid属性非空?

Answer 1:

这工作,如果你不介意做的事情略有倒退,你需要它不支持浏览器的工作:not

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

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

这将让所有的div s的非空data-pid的绿色。

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



Answer 2:

相貌丑陋,但这样的事情应该这样做:

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

的jsfiddle演示

随着一点点的Javascript,你也可以添加类,如果你需要支持旧的浏览器。



Answer 3:

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

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

的jsfiddle 。

这将有更好的浏览器支持。 相反,选择您喜欢的类型,款式所有的人,然后将在第二选择的差异。



文章来源: Select elements where attribute is non-empty