Descrivi le pseudo-classi e i pseudo-elementi in CSS.
sobes.tech AI
Risposta dell'AI
Le pseudo-classi e i pseudo-elementi ampliano le capacità dei selettori CSS, consentendo di applicare stili in base allo stato, alla posizione o ad altre caratteristiche degli elementi che non possono essere espresse con semplici selettori.
Pseudo-classi
Le pseudo-classi iniziano con due punti (:). Sono usate per stilizzare un elemento in uno stato specifico.
Principali pseudo-classi:
:hover- stilizza l'elemento al passaggio del mouse.:active- stilizza l'elemento durante il clic (attivazione).:focus- stilizza l'elemento che attualmente ha il focus (ad esempio, dopo aver cliccato su un link o un campo di input).:visited- stilizza i link visitati.:link- stilizza i link non visitati.:first-child- stilizza il primo figlio del suo elemento padre.:last-child- stilizza l'ultimo figlio del suo elemento padre.:nth-child(n)- stilizza il n-esimo figlio del suo elemento padre.npuò essere un numero, una parola chiave (even, odd) o un'espressione (2n+1).:nth-last-child(n)- stilizza il n-esimo figlio a partire dalla fine.:not(selector)- stilizza gli elementi che non corrispondono al selettore specificato.
/* Esempio di utilizzo delle pseudo-classi */
a:hover {
color: blue; /* Cambia il colore del link al passaggio del mouse */
}
input:focus {
border-color: green; /* Cambia il colore del bordo del campo di input al focus */
}
li:first-child {
font-weight: bold; /* Stilizza il primo elemento della lista */
}
Pseudo-elementi
Gli pseudo-elementi iniziano con due punti (::). Sono usati per stilizzare una parte specifica dell'elemento o per inserire contenuto generato prima o dopo il contenuto dell'elemento.
Principali pseudo-elementi:
::before- inserisce contenuto generato prima del contenuto dell'elemento. Spesso usato con la proprietàcontent.::after- inserisce contenuto generato dopo il contenuto dell'elemento. Richiede anche la proprietàcontent.::first-letter- stilizza la prima lettera del blocco di testo.::first-line- stilizza la prima riga del blocco di testo.::selection- stilizza la parte dell'elemento che è stata selezionata dall'utente.
/* Esempio di utilizzo degli pseudo-elementi */
p::first-letter {
font-size: 2em; /* Aumenta la prima lettera del paragrafo */
font-weight: bold;
}
h2::after {
content: " ---"; /* Aggiunge testo dopo il titolo */
color: gray;
}
mark::selection {
background-color: yellow; /* Cambia lo sfondo del testo selezionato */
color: black;
}
Storicamente, le pseudo-classi usavano un singolo due punti (:) per compatibilità con CSS2.1, mentre gli pseudo-elementi in CSS3 hanno iniziato a usare due punti (::) per una migliore distinzione. Si raccomanda di usare due punti per gli pseudo-elementi nel codice moderno.
Tabella di confronto:
| Caratteristica | Pseudo-classe | Pseudo-elemento |
|---|---|---|
| Sintassi | :selettore |
::selettore |
| Scopo | Stato dell'elemento | Parte dell'elemento o contenuto generato |
| Esempi | :hover, :focus, :first-child |
::before, ::after, ::first-letter |