找不到“不相等”的CSS属性选择器


Answers:


174

使用如下代码:

div:not([foo=''])
{
    /* CSS Applied to divs having foo value Not nothing (or having a foo value assigned) */
}


6

接受的答案的一个问题是它还会选择根本没有foo属性的元素。考虑:

<div>No foo</div>
<div foo="">Empty foo</div>
<div foo="x">XXX</div>
<div foo="y">YYY</div>
<div foo="z">ZZZ</div>

div:not([foo=''])将同时选择第一个和第二个div元素。如果只需要将div属性foo设置为空字符串的元素,则应使用:

div[foo]:not([foo=''])

如果要使所有元素的属性foo都不是yz,则应使用:

div[foo]:not([foo='y']):not([foo='z'])

1

您可以使用选择第一个

[foo = 'x']{
  background:red;
}

小提琴

读这个


假设有100个div,其中不存在50个div的foo值(foo =''),而其他50个div具有不同的foo值,例如foo = x或y等,那么如果我们遵循上述解决方案,则需要编写50个选择器
Shoaib Chikate 2014年

2
那不是操作人员想要的:“我只想使用css属性选择器定位以下div中的第一个”
Sunil Hari 2014年

您的回答对他的要求是正确的,但不是其他人给出的一般解决方案。
Shoaib Chikate 2014年

@ShoaibChikate你是正确的。我想要更通用的解决方案。我更新了问题以反映这一点。
阿德里安·罗斯卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.