Я хочу настроить таргетинг на элементы div, в которых атрибут «foo» имеет значение.
<div foo="x">XXX</div>
<div foo="">YYY</div>
Я пробовал этот CSS, но он не работает:
[foo!='']
{
background: red;
}
Я хочу настроить таргетинг на элементы div, в которых атрибут «foo» имеет значение.
<div foo="x">XXX</div>
<div foo="">YYY</div>
Я пробовал этот CSS, но он не работает:
[foo!='']
{
background: red;
}
Ответы:
:not([foo=''])
{
background: red;
}
Одна из проблем с принятым ответом заключается в том, что он также выберет элементы, у которых вообще нет 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который не является ни yили z, вы должны использовать:
div[foo]:not([foo='y']):not([foo='z'])