2013-07-28 15 views
6

Pytanie jest proste, odpowiedź może nie.Problem z atrybutem! = Selektor

Próbuję zastosować kilka stylów do wszystkich elementów wejściowych bez określonego identyfikatora. Używam tego selektora w moim arkuszu stylów CSS: input[id!='move'], ale niestety nie działa on ani w IE10, ani w Chrome.

Ciekawostką jest, że ten blok: input:not(#move) działa idealnie w obu. Zgubiłem się, ponieważ pierwszy blok kodu powinien działać tak długo, jak rozumiem, jak działają tego rodzaju selektory.

Wszelkie pomysły?

+2

Nie można wykluczyć atrybutu za pomocą samego [selektory atrybutu] (http://www.w3.org/TR/selectors/#attribute-selectors) - użycie opcji "!" W celu wykluczenia wartości atrybutu w CSS jest nieważny. Jeśli * potrzebujesz *, aby wykluczyć identyfikator, musisz uwzględnić pseudoklasę [: not()] (http://www.w3.org/TR/selectors/#negation). – Adrift

Odpowiedz

6

To jest niestandardowy selektor atrybutu invented by jQuery. Nie jest częścią Selectors specification, więc nie będzie działać nigdzie poza jQuery (dotyczy to rzeczy takich jak document.querySelectorAll()).

Ściśle mówiąc, bezpośrednim odpowiednikiem jQuery's input[id!='move'] w standardowej składni selektora jest input:not([id='move']), z selektorem atrybutu. Ale ponieważ chcesz dopasować elementy bez konkretnego identyfikatora, input:not(#move) jest w porządku.

Powiązane problemy