Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pseudo-classi per la validazione

Un gruppo di selettori utili nella validazione dei form
Un gruppo di selettori utili nella validazione dei form
Link copiato negli appunti

Le pseudo-classi viste finora sono tutte definite nel modulo dei selettori dei CSS3. Un altro gruppo estremamente interessante per le potenzialità che promette è invece parte del modulo Basic User Interface.

Si tratta di pseudo-classi che vanno in qualche modo ad affiancarsi a quelle destinate a definire gli stili per i vari stati degli elementi nel contesto dell'interfaccia utente, ovvero:

  • :hover
  • :active
  • :focus
  • :enabled
  • :disabled
  • :checked

Ecco l'elenco completo:

  • :default
  • :valid
  • :invalid
  • :in-range
  • :out-of-range
  • :required
  • :optional
  • :read-only
  • :read-write

Il loro contesto di utilizzo primario è quello della validazione dei form. In particolare, sono pensate per affiancare a livello di presentazione i nuovi di tipi di input e di attributi per i form definiti in HTML5. Per una trattazione approfondita e arricchita da utilissimi esempi rimandiamo anche alla lettura dell'articolo Validazione dei form con CSS3 e HTML5.

:default

Questa pseudo-classe seleziona l'elemento all'interno di un gruppo di altri elementi che è impostato come default. La specifica espone come casi tipici quelli di un pulsante di submit nel contesto di altri pulsanti o della voce di default all'interno di un menu.

In pratica, dato questo codice HTML relativo ad un form con tre pulsanti

<form method="get">
<p><input type="submit" id="submit1"></p>
<p><input type="submit" id="submit2"></p>
<p><input type="reset"></p>
</form>

se usiamo questa regola CS:

:default {background:red}

il primo pulsante avrà lo sfondo rosso.

Ecco l'esempio.

:valid e :invalid

Queste due pseudo-classi servono a definire uno stile per un elemento quando esso sia valido o non valido rispetto alle regole di validazione definite.

Se per esempio, nel corso della compilazione di un modulo, volessimo segnalare in qualche modo all'utente che il campo appena riempito è valido, potremmo modificare il colore di sfondo del campo. Usando la pseudo-classe :valid potremmo impostare una regola come questa:

input:valid {background: green}

:required e :optional

Da usare in combinazione con i nuovi attributi HTML5 per i form, queste pseudo-classi consentono di applicare stili ad hoc per i campi di un modulo quando essi siano impostati come obbligatori (:required) oppure non obbligatori (:optional).

:in-range e :out-of-range

Anche in questo caso il riferimento obbligato è alla specifica HTML5. Essa ha introdotto nuovi tipi di input come number o range che consentono l'inserimento di valori da limitare entro uno specifico intervallo. Per esempio, si può impostare un campo di tipo number perché contenga solo cifre tra 1 e 10 (basta usare gli attributi min e max):

<input type="number" min="1" max="10">

Ora impostiamo queste regole CSS:

input:in-range {background:yellow}
input:out-of-range {background:red}

Se il valore è compreso nel range definito per il campo (1-10), lo sfondo sarà giallo, se supera il range sarà rosso. Ecco come viene visualizzato l'esempio su Google Chrome:

Figura 1 - Campo number con valore tra 1 e 10
screenshot
Figura 2 - Campo number con valore che supera 10
screenshot

:read-only e :read-write

Queste due pseudo-classi, al momento le meno supportate dai browser, definiscono lo stato di sola lettura (:read-only) e di lettura/scrittura (:read-write) per gli elementi HTML.

Tabella del supporto sui browser

Pseudo-classi per la validazione Internet Explorer Firefox Safari Google Chrome Opera
:default No 3.5+ 4.0+ 2.0+ 9.0+
:valid No 4.0+ 4.0+ 2.0+ 9.0+
:invalid No 4.0+ 4.0+ 2.0+ 9.0+
:in-range No No No 7.0+ 9.0+
:out-of-range No No No 7.0+ 9.0+
:read-only No Sperimentale No No Incorretto
:read-only No Sperimentale No No Incorretto

Ti consigliamo anche