CSS Fogli Di Stile

Selettori Di Attributo

Selettori di attributo: teoria, esempi e sperimentazione nel browser.

Prerequisiti: Selettori di fratelli.

Selezionare mediante attributi

Selezionare mediante attributi: fondamenti.

Un selettore di attributo controlla attributi presenti nell’HTML. [disabled] richiede la presenza dell’attributo, mentre input[type="email"] richiede un determinato valore. Puoi combinarlo con un selettore di tipo per limitare l’effetto. L’attributo non deve essere una classe: può essere href, target, type o un attributo data-* previsto dal componente.

Come funziona: selezionare mediante attributi

Selezionare mediante attributi: comportamento nel browser.

Esistono operatori per controllare parti del valore: ^= verifica l’inizio, $= la fine, *= una sottostringa. a[href$=".pdf"] corrisponde a valori che terminano esattamente con .pdf: una query dopo l’estensione impedisce quella corrispondenza. Il selettore non analizza il contenuto del file e non garantisce che la risorsa sia realmente un PDF.

Scelte di utilizzo e limiti

Selezionare mediante attributi: progetto e verifica.

Le regole riflettono il valore scritto nell’attributo, non un significato dedotto liberamente dal browser. Sono utili per segnalare varianti già descritte dal markup, ma non sostituiscono etichette accessibili o comportamenti applicativi. Un bordo particolare su un campo email non valida l’indirizzo: la validazione è un altro compito.

Idea chiave: Il campo email riceve il bordo; il campo testo no. Il pulsante disabilitato viene selezionato dalla presenza di disabled.

Esempio commentato

Selezionare mediante attributi: HTML e CSS.

Esempio con stile esterno. Il documento index.html collega il file stile.css mediante il tag link nella head.

Documento HTML completo

<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Selettori di attributo</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<label>Email <input type="email" name="email"></label>
<label>Nome <input type="text" name="nome"></label>
<button disabled>Invio non disponibile</button>
</body>
</html>

File stile.css

input[type="email"] { border: 2px solid navy; }
[disabled] { opacity: 0.6; }

Il campo email riceve il bordo; il campo testo no. Il pulsante disabilitato viene selezionato dalla presenza di disabled.

ProprietàValore nell’esempioSignificato
border2px solid navyAbbreviazione per spessore, stile e colore del bordo.
opacity0.6Opacità dell’intera resa dell’elemento.
Attenzione: Un selettore basato su href controlla il testo dell’attributo, non il vero formato della risorsa remota.

LABORATORIO

Sperimentare: Selezionare mediante attributi

Il campo email riceve il bordo; il campo testo no. Il pulsante disabilitato viene selezionato dalla presenza di disabled.

Obiettivo: Comprendere e applicare selezionare mediante attributi attraverso esempi e verifica nel browser.

Software: editor di testo e browser con DevTools; Tempo: 15 minuti.

Preparazione: scarica l’esempio completo e estrai lo ZIP. Apri index.html nel browser. Puoi anche aprire l’esempio online.

Apri il file stile.css nell’editor. Le lezioni iniziali usano un documento già preparato per concentrarsi sulle regole; il collegamento esterno e lo stile interno vengono spiegati nelle lezioni dedicate. Le modifiche nei DevTools sono normalmente temporanee.

Procedura passo passo

  1. Osserva il punto di partenza: apri l’esempio, confronta markup e regole e individua il selettore o il contesto di layout rilevante.
  2. Esegui la modifica: Cambia type="email" in type="text" e osserva quale bordo rimane.
  3. Salva e ricarica la pagina dopo ogni modifica. Confronta gli elementi che devono cambiare con quelli che devono restare invariati.
  4. Ispeziona il risultato: usa il menu Ispeziona e controlla Styles/Regole e Computed/Calcolato. Per layout Flex o Grid attiva l’overlay, se disponibile.
  5. Annota causa ed effetto: scrivi il valore o la struttura iniziale, il cambiamento e il risultato. Ripristina il punto di partenza prima dell’esercizio autonomo.
Cosa devi vedere — Output atteso

La regola di attributo non corrisponde più al campo modificato. Ripristina poi il tipo email.

Il font e alcuni dettagli dell’interfaccia dipendono dal browser. Valuta la proprietà e il comportamento descritti, non una corrispondenza perfetta con uno screenshot.

Verifica del risultato

ControlloCriterio
Effetto specificoLa regola di attributo non corrisponde più al campo modificato. Ripristina poi il tipo email.
Corrispondenza del codiceIndividua la dichiarazione o la relazione HTML responsabile della differenza.
PersistenzaRiporta la modifica nel file e verifica dopo un ricaricamento.
SpiegazioneMotiva la differenza senza affidarti soltanto a uno screenshot.
Se il risultato non coincide: verifica file aperto, salvataggio, percorso del CSS, selettore e validità dei valori. Controlla poi la cascata e le dimensioni del viewport. Cambia una sola causa alla volta.

Esercizio autonomo

Seleziona link con target="_blank" e assegna una sottolineatura più spessa.

Consegna: file modificati e una breve spiegazione di selettore, proprietà e risultato. Criterio di riuscita: il cambiamento richiesto funziona dopo il ricaricamento e non taglia informazioni indispensabili.

Una possibile soluzione dell’esercizio
a[target="_blank"] { text-decoration-thickness: 3px; }

Integra la soluzione nel punto pertinente: modifica o sostituisci le regole coinvolte invece di accumulare dichiarazioni contraddittorie. Le altre parti dell’esempio restano necessarie.

Verifica dei concetti

Selezionare mediante attributi: interpretazione e applicazione.

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Che cosa richiede [disabled]? ▾
Risposta: La presenza dell’attributo disabled. Un selettore di attributo controlla attributi presenti nell’HTML. [disabled] richiede la presenza dell’attributo, mentre input[type="email"] richiede un determinato valore. Puoi combinarlo con un selettore di tipo per limitare l’effetto. L’attributo non deve essere una classe: può essere href, target, type o un attributo data-* previsto dal componente.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: Il campo email riceve il bordo; il campo testo no. Il pulsante disabilitato viene selezionato dalla presenza di disabled.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: La regola di attributo non corrisponde più al campo modificato. Ripristina poi il tipo email.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: Un selettore basato su href controlla il testo dell’attributo, non il vero formato della risorsa remota.

Riferimento tecnico: MDN — riferimento CSS. Cerca le proprietà o i selettori utilizzati nell’esempio.