Citando the Selector Level 4 docs :
La negazione pseudo-classe, :not()
, è funzionale pseudo-classe prendere un elenco selettore come argomento. Rappresenta un elemento che non è rappresentato dal suo argomento.
Nota: Nel Livello 3 selettori, un solo selettore semplice è stato permesso come argomento di :not()
.
che spiega il motivo per cui questo ...
input:not([type="radio"][type="submit"])
... non è supportato in qualsiasi browser che non implementa questa parte della spec CSS4 (per quanto ne so, nessuno lo fa a questo punto del tempo, è solo una bozza di lavoro, dopo tutto). Ma la logica è viziata in questo selettore, troppo: anche se la sintassi è stata sostenuta universalmente, essa avrebbe dovuto essere scritto come ...
input:not([type="radio"],[type="submit"])
Sede, [foo][bar]
regola viene trattato come requisito per qualsiasi elemento di essere siafoo
e bar
. Ma (ovviamente!) Non è possibile che nessun input sia di tipo radio
e submit
.
La linea di fondo: dovrete usare ...
input:not([type="radio"]):not([type="submit"])
... perché CSS3 only supports simple selectors in :not
.
Waw questo è difficile. Stavo testando (e accidentalmente ho postato una risposta) che mostra che nessuno di loro ha effettivamente bersagliato alcun elemento - e dopo aver letto le specifiche per ': not', non chiarisce se potrebbero essere incatenati. Dice che non possono essere annidati, ma è così ... Mi chiedo se sta inciampando sul doppio 'tipo', ma non riesco a trovare un buon modo per dimostrarlo. Buona domanda! – somethinghere
Ovviamente, ': not' può essere incatenato, perché non dovrebbe? – raina77ow
Grazie per il tuo editing, Xufox! Hai fatto questo molto meglio. –