假设我有以下几点:选择元素,其中属性非空
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
是否有CSS的方式只选择元素,其中的data-pid
属性非空?
假设我有以下几点:选择元素,其中属性非空
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
是否有CSS的方式只选择元素,其中的data-pid
属性非空?
这工作,如果你不介意做的事情略有倒退,你需要在浏览器中的工作不支持:not
:
div[data-pid] {
color: green;
}
div[data-pid=""] {
color: inherit;
}
这将让所有的div
s的非空data-pid
s绿色。
相貌丑陋,但这样的事情应该这样做:
[data-pid]:not([data-pid=""])
随着一点点的Javascript,你也可以添加类,如果你需要支持旧的浏览器。
不够公平。所以没有单一的属性选择器? – 2013-05-07 22:05:45
@Kolink我在http://www.w3.org/TR/css3-selectors/#attribute-selectors – kapa 2013-05-07 22:07:48
/* Normal styles */
[data-pid] {}
/* Differences */
[data-pid=""] {}
这将有更好的浏览器支持。而不是选择你想要的,把它们全部样式化,然后把差异放在第二个选择器中。
中看不到任何内容接受此答案,因为比alex快了6秒。尽管我不知道'inherit'是否是浏览器支持的最佳选择:p – 2013-05-07 22:22:27