Det :user-invalid
är en CSS-pseudoklass som föreslås i arbetsutkastet för CSS-väljare nivå 4 som väljer ett formulärelement baserat på huruvida värdet - som anges av en användare - är giltigt när det kontrolleras mot det som anges som ett accepterat värde i HTML-markeringen efter att slutanvändaren har interagerat med formuläret bortom den ingången. I själva verket :user-invalid
har det kallats "The User Interaction Pseudo-class" eftersom det är unikt när det gäller att identifiera en användaråtgärd vid val av ett element.
Ta följande HTML-markering för en grundform med ett numeriskt fält:
Kvantitet:
Det numeriska intervallet som anges av HTML-markeringen för ingången är mellan 1
och 10
men standardvärdet har ställts in på 11
. Det betyder att värdet är ogiltigt så snart formuläret laddas.
Men :user-invalid
kommer pseudo klassen inte träda i kraft förrän efter det att användaren har faktiskt interagerat med formuläret bortom in det i fältet. Den interaktionen är skillnaden mellan :user-invalid
och :invalid
. Samma princip gäller för angivna formulärvärden som ställs in av :in-range
, :out-of-range
och :required
.
När värdet som användaren har angett är bestämt att vara en ogiltig post kan vi välja elementet:
input:user-invalid ( color: red; )
Följande bild illustrerar de olika tillstånden mellan :valid
och :user-invalid
baserat på HTML-exemplet ovan.


Det förvirrande med här är hur nära släkt :invalid
och :user-invalid
är. Om det används tillsammans kan det vara svårt att skilja mellan de två:
input:invalid ( color: red; ) input:user-invalid ( color: red; )


:invalid
(center) och ett ogiltigt värde som anges av en användare (höger) kan vara svårt att skilja
Att använda varandra eller ha tydlig styling mellan de två kan visa sig vara en bättre användarupplevelse i ett verkligt användningsfall.
Webbläsarstöd
:user-invalid
stöds för närvarande inte men föreslås i CSS Selectors nivå 4 arbetsutkast.
Firefox använder en prefixad icke-standardegenskap -moz-ui-invalid
som antar liknande standarder.
Relaterad
:invalid
:valid
Mer information
- CSS-väljare nivå 4-specifikation
- MDN Specifikation för
:-moz-ui-invalid