Załóżmy, że mam następujące:Zaznacz elementy, gdzie atrybut jest niepusty
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
Czy istnieje sposób w CSS, aby wybrać tylko te elementy, w których atrybut data-pid
nie jest pusty?
Załóżmy, że mam następujące:Zaznacz elementy, gdzie atrybut jest niepusty
<div data-pid="">Unknown</div>
<div data-pid="123">Known 123</div>
Czy istnieje sposób w CSS, aby wybrać tylko te elementy, w których atrybut data-pid
nie jest pusty?
To działa, jeśli nie masz nic robić rzeczy lekko do tyłu i trzeba go do pracy w przeglądarkach, które nie obsługują :not
:
div[data-pid] {
color: green;
}
div[data-pid=""] {
color: inherit;
}
To uczyni wszelkie div
S z niepusty data-pid
s zielony.
Fiddle tutaj: http://jsfiddle.net/ZuSRM/
wygląda brzydko, ale coś takiego powinno wystarczyć:
[data-pid]:not([data-pid=""])
Przy odrobinie JavaScript można także dodać klas, jeśli trzeba wspierać starszych przeglądarek.
Wystarczająco fair. Więc nie ma jednego selektora atrybutów? –
@Kolink Nie widzę niczego w http://www.w3.org/TR/css3-selectors/#attribute-selectors – kapa
/* Normal styles */
[data-pid] {}
/* Differences */
[data-pid=""] {}
To będzie miało znacznie lepszą obsługę przeglądarki. Zamiast wybierać te, które chcesz, wszystkie style, a następnie umieścić różnice w drugim selektorze.
Przyjmowanie tej odpowiedzi, ponieważ jest o sześć sekund szybszy niż alex. Chociaż nie wiem, czy "dziedziczenie" jest najlepszą rzeczą do wykorzystania w obsłudze przeglądarek: p –