2013-05-07 13 views

Odpowiedz

20

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/

+1

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 –

17

wygląda brzydko, ale coś takiego powinno wystarczyć:

[data-pid]:not([data-pid=""]) 

jsFiddle Demo

Przy odrobinie JavaScript można także dodać klas, jeśli trzeba wspierać starszych przeglądarek.

+0

Wystarczająco fair. Więc nie ma jednego selektora atrybutów? –

+0

@Kolink Nie widzę niczego w http://www.w3.org/TR/css3-selectors/#attribute-selectors – kapa

4
/* Normal styles */ 
[data-pid] {} 

/* Differences */ 
[data-pid=""] {} 

jsFiddle.

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.

Powiązane problemy