4.1 Pseudoclasse :checked
Le pseudoclassi di modulo in CSS forniscono la possibilità di stilizzare gli elementi del modulo in base al loro stato.
Queste pseudoclassi permettono di creare moduli interattivi e accessibili, migliorando l'interfaccia utente e l'esperienza.
Diamo un'occhiata più da vicino alle pseudoclassi :checked
, :disabled
, :enabled
e :invalid
.
La pseudoclasse :checked si applica agli elementi del modulo che sono nello stato "selezionato". Questo riguarda le checkbox
(<input type="checkbox">
), i radio button (<input type="radio">
) e le opzioni (<option>
).
Sintassi:
selettore:checked {
proprietà: valori;
}
Esempio di utilizzo
In questo esempio, le checkbox, i radio button e le opzioni selezionate ottengono un colore di sfondo corrispondente quando sono nello stato "selezionato":
/* Stilizzazione della checkbox selezionata */
input[type="checkbox"]:checked {
background-color: #3498db;
}
/* Stilizzazione del radio button selezionato */
input[type="radio"]:checked {
background-color: #2ecc71;
}
/* Stilizzazione dell'opzione selezionata */
option:checked {
background-color: #e74c3c;
}
4.2 Pseudoclasse :disabled
La pseudoclasse :disabled
si applica agli elementi del modulo che sono nello stato disabilitato. Questo è utile per
stilizzare gli elementi che temporaneamente non sono disponibili per l'interazione.
Sintassi:
selettore:disabled {
proprietà: valori;
}
Esempio di utilizzo
In questo esempio, i campi di input e i pulsanti disabilitati ottengono un colore di sfondo, bordo e testo corrispondente, oltre a cambiare il cursore in "non consentito":
/* Stilizzazione del campo di input disabilitato */
input:disabled {
background-color: #f0f0f0;
border-color: #ccc;
color: #888;
}
/* Stilizzazione del pulsante disabilitato */
button:disabled {
background-color: #d0d0d0;
color: #777;
cursor: not-allowed;
}
4.3 Pseudoclasse :enabled
La pseudoclasse :enabled
si applica agli elementi del modulo che sono nello stato abilitato.
Questo permette di stilizzare gli elementi disponibili per l'interazione.
Sintassi:
selettore:enabled {
proprietà: valori;
}
Esempio di utilizzo
In questo esempio, i campi di input e i pulsanti abilitati ottengono un colore di sfondo, bordo e testo corrispondente, oltre a cambiare il cursore in "puntatore":
/* Stilizzazione del campo di input abilitato */
input:enabled {
background-color: #fff;
border-color: #3498db;
}
/* Stilizzazione del pulsante abilitato */
button:enabled {
background-color: #2ecc71;
color: white;
cursor: pointer;
}
4.4 Pseudoclasse :invalid
La pseudoclasse :invalid
si applica agli elementi del modulo che non hanno superato la validazione. Questo permette di stilizzare
i campi di input che contengono dati non corretti.
Sintassi:
selettore:invalid {
proprietà: valori;
}
Esempio di utilizzo
In questo esempio, i campi di input e i campi di testo non corretti ottengono un colore di bordo e di sfondo corrispondente, per mostrare visivamente che i dati non hanno superato la validazione:
/* Stilizzazione del campo di input non corretto */
input:invalid {
border-color: #e74c3c;
background-color: #f9e0e0;
}
/* Stilizzazione del campo di testo non corretto */
textarea:invalid {
border-color: #e74c3c;
background-color: #f9e0e0;
}
4.5 Esempio di implementazione completa
/* Stilizzazione della checkbox selezionata */
input[type="checkbox"]:checked {
background-color: #3498db;
}
/* Stilizzazione del radio button selezionato */
input[type="radio"]:checked {
background-color: #2ecc71;
}
/* Stilizzazione del campo di input disabilitato */
input:disabled {
background-color: #f0f0f0;
border-color: #ccc;
color: #888;
}
/* Stilizzazione del pulsante disabilitato */
button:disabled {
background-color: #d0d0d0;
color: #777;
cursor: not-allowed;
}
/* Stilizzazione del campo di input abilitato */
input:enabled {
background-color: #fff;
border-color: #3498db;
}
/* Stilizzazione del pulsante abilitato */
button:enabled {
background-color: #2ecc71;
color: white;
cursor: pointer;
}
/* Stilizzazione del campo di input non corretto */
input:invalid {
border-color: #e74c3c;
background-color: #f9e0e0;
}
/* Stilizzazione del campo di testo non corretto */
textarea:invalid {
border-color: #e74c3c;
background-color: #f9e0e0;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Esempio di pseudoclassi di modulo</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<form>
<label>
<input type="checkbox" name="option1"> Opzione 1
</label>
<br>
<label>
<input type="radio" name="choice" value="1"> Scelta 1
</label>
<label>
<input type="radio" name="choice" value="2"> Scelta 2
</label>
<br>
<input type="text" placeholder="Inserisci il tuo nome" required>
<br>
<input type="email" placeholder="Inserisci la tua email" required>
<br>
<button type="submit">Invia</button>
<button type="button" disabled>Pulsante Disabilitato</button>
</form>
</body>
</html>
GO TO FULL VERSION