Usare data-* con i selettori di attributo CSS
Applicare stili condizionali agli elementi in base ai valori degli attributi data
Usare data-* con i selettori di attributo CSS è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.
Selettori CSS degli attributi
I selettori CSS degli attributi selezionano gli elementi in base alla presenza e al valore degli attributi: [data-state] corrisponde a qualsiasi elemento con un attributo data-state; [data-state="active"] corrisponde solo quando il valore è uguale a "active".
Selettore di presenza
[data-tooltip] corrisponde agli elementi che hanno l'attributo data-tooltip, indipendentemente dal valore. Lo utilizzi per applicare gli stili di base del tooltip a qualsiasi elemento a cui siano associati dati del tooltip, prima di considerare il contenuto del tooltip.
Selettore di corrispondenza esatta
[data-theme="dark"] corrisponde solo agli elementi in cui data-theme è esattamente uguale a "dark". Questo consente di applicare stili basati sul tema: applichi i token di colore scuro quando l'elemento html ha data-theme="dark" impostato da JavaScript.
Selettori di corrispondenza parziale
[data-icon^="arrow"] corrisponde ai valori che iniziano con "arrow". [data-label$="ing"] corrisponde ai valori che terminano con "ing". [data-tag*="feature"] corrisponde ai valori che contengono "feature". Questi selettori consentono di applicare stili basati su pattern senza aggiungere molte classi.
Macchina a stati con data-*
Modelli lo stato del componente con attributi data-state: [data-state="idle"], [data-state="loading"], [data-state="error"]. Le regole CSS per ogni stato sostituiscono più nomi di classe condizionali, mantenendo lo stato in un unico attributo e gli stili chiaramente separati.
[data-state="loading"] .spinner { display: block; }
[data-state="error"] .message { color: var(--color-error); }Specificità dei selettori degli attributi
I selettori degli attributi hanno la stessa specificità dei selettori di classe (0,1,0). Combinandoli con i selettori di elementi: button[data-variant="primary"] ha specificità (0,1,1). Pianifichi la specificità dei selettori degli attributi insieme alle regole basate sulle classi per evitare conflitti.
Pattern del tooltip
Un tooltip realizzato interamente in CSS utilizzando data-tooltip: applichi ::after { content: attr(data-tooltip) } al passaggio del mouse. La funzione content: attr() legge il valore dell'attributo e lo utilizza come contenuto dello pseudo-elemento — non sono necessari JavaScript né elementi HTML aggiuntivi.
[data-tooltip]:hover::after {
content: attr(data-tooltip);
position: absolute;
background: #333;
color: white;
padding: 4px 8px;
border-radius: 4px;
}data-* vs classi per lo stile
Utilizzi le classi per indicare l'intento dello stile (is-active, has-error) e gli attributi data per il payload dei dati (data-user-id, data-count). Quando lo stesso attributo controlla sia il comportamento (lo legge JS) sia lo stile (CSS lo usa per la selezione), data-* evita duplicazioni tra JS e CSS.
Combinazione dei selettori data-*
Concateni più selettori degli attributi: [data-type="button"][data-size="large"] corrisponde agli elementi in cui sono impostati entrambi gli attributi. In questo modo ottiene una corrispondenza composta senza dover utilizzare una classe combinata come .button-large, riducendo la proliferazione delle classi.
Nota sulle prestazioni
I selettori degli attributi sono leggermente più lenti dei selettori di classe durante la risoluzione degli stili. Per gli stili statici, preferisca le classi. Utilizzi i selettori degli attributi quando il valore dell'attributo determina lo stile (come data-state o data-theme) e cambia durante l'esecuzione, poiché un solo attributo sostituisce più classi attivate e disattivate.
Distinzione tra maiuscole e minuscole
Per impostazione predefinita, la corrispondenza dei valori degli attributi è sensibile alle maiuscole e alle minuscole in HTML (ma non per i codici lingua in XHTML). Aggiunga il flag i per una corrispondenza non sensibile alle maiuscole: [data-state="Active" i] corrisponde a "active", "Active" e "ACTIVE".
Verifica delle conoscenze
Che cosa fa il selettore CSS [data-state="loading"] .spinner?
Riepilogo
I selettori CSS degli attributi corrispondono agli attributi data-* in base alla presenza, al valore esatto o a pattern parziali. In combinazione con content: attr() per i tooltip e data-state per le macchine a stati dei componenti, gli attributi data-* fungono sia da contenitori di dati sia da punti di aggancio per gli stili CSS, senza proliferazione delle classi.
Domande Frequenti
La lezione «Usare data-* con i selettori di attributo CSS» è gratuita?
Sì — il testo completo di «Usare data-* con i selettori di attributo CSS» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.
Cosa imparerò in «Usare data-* con i selettori di attributo CSS»?
Applicare stili condizionali agli elementi in base ai valori degli attributi data Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare HTML Academy?
Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Usare data-* con i selettori di attributo CSS»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione HTML Academy?
Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Sintassi di data-* e convenzioni di denominazione
- Accedere a data-* con dataset in JavaScript
- Usare data-* con i selettori di attributo CSS
- Pattern pratici: tooltip e monitoraggio dello stato