Ich möchte auf div-Elemente abzielen, bei denen das Attribut "foo" einen Wert hat.
<div foo="x">XXX</div>
<div foo="">YYY</div>
Ich habe dieses CSS ausprobiert, aber es funktioniert nicht:
[foo!='']
{
background: red;
}
Ich möchte auf div-Elemente abzielen, bei denen das Attribut "foo" einen Wert hat.
<div foo="x">XXX</div>
<div foo="">YYY</div>
Ich habe dieses CSS ausprobiert, aber es funktioniert nicht:
[foo!='']
{
background: red;
}
Antworten:
:not([foo=''])
{
background: red;
}
Ein Problem mit der akzeptierten Antwort besteht darin, dass auch Elemente ausgewählt werden, die überhaupt kein fooAttribut haben. Erwägen:
<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=''])wählt sowohl das erste als auch das zweite divElement aus. Wenn Sie nur divElemente mit einem Attribut foo möchten , das auf eine leere Zeichenfolge festgelegt ist, sollten Sie Folgendes verwenden:
div[foo]:not([foo=''])
Wenn Sie alle Elemente mit einem Attribut möchten foo, das weder ynoch ist z, sollten Sie Folgendes verwenden:
div[foo]:not([foo='y']):not([foo='z'])