Mi sto divertendo moltissimo con questo particolare selettore CSS che non vuole funzionare quando aggiungo :not(:empty)
ad esso. Sembra funzionare bene con qualsiasi combinazione degli altri selettori:
input:not(:empty):not(:focus):invalid { border-color: #A22; box-shadow: none }
Se rimuovo la :not(:empty)
parte, funziona perfettamente. Anche se cambio il selettore in input:not(:empty)
esso, non selezionerò ancora i campi di input in cui è stato digitato del testo. È rotto o non sono autorizzato a usarlo :empty
all'interno di un :not()
selettore?
L'unica altra cosa a cui riesco a pensare è che i browser continuano a dire che l'elemento è vuoto perché non ha figli, solo un "valore" per dire. Il :empty
selettore non ha funzionalità separate per un elemento di input rispetto a un elemento normale? Questo non sembra probabile però perché usare :empty
su un campo e digitare qualcosa al suo interno farà scomparire gli effetti alternativi (perché non è più vuoto).
Testato in Firefox 8 e Chrome.
:empty
selettore di : "Alcuni altri elementi, d'altra parte, sono vuoto (cioè non hanno figli) per definizione: <input>
, <img>
, <br>
, e <hr>
, per esempio."
:not(:empty)
, il bordo rosso funziona come previsto per un input che non è a fuoco ma non è valido.