Frontend Academy · Lezione

Selettori e cascata

Selezioni gli elementi con selettori di tipo, classe, ID e attributo. Comprenda specificità, ereditarietà e cascata per prevedere quali stili prevalgano.

Lezione 1 di 413 passaggi

Selettori e cascata è una lezione Frontend Academy gratuita su CoddyKit. Questa è la lezione 1 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 Frontend Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Frontend Academy include 4 lezioni in totale.

Che cos'è CSS?

CSS (Cascading Style Sheets) è il linguaggio che controlla la presentazione visiva. Si scrivono regole: ogni regola ha un selettore che individua gli elementi e un blocco di dichiarazioni con coppie proprietà-valore.

selector {
  property: value;
  another-property: value;
}

Selettori di tipo, classe e ID

I tre selettori fondamentali: type individua tutti gli elementi di un tag (p), class individua gli elementi con una classe (.card), ID individua un elemento tramite il suo id (#logo). Preferisca le classi: gli ID hanno una specificità molto elevata.

p { color: #333; }        /* type */
.card { padding: 16px; }   /* class */
#logo { width: 200px; }    /* ID */

Selettori di attributo e pseudo-classe

Selezioni in base al valore di un attributo con [type="email"]. Utilizzi le pseudo-classi per indicare uno stato: :hover, :focus, :active, :checked, :nth-child(), :first-child, :last-child.

input[type="email"] { border-color: blue; }
a:hover { text-decoration: underline; }
li:nth-child(odd) { background: #f5f5f5; }

Combinatori

I combinatori descrivono le relazioni tra gli elementi: spazio (discendente), > (figlio diretto), + (fratello adiacente), ~ (fratello generico).

nav a { color: white; }        /* descendant */
nav > ul { list-style: none; }  /* child */
h2 + p { margin-top: 0; }       /* adjacent sibling */

Specificità: chi prevale?

Quando più regole individuano lo stesso elemento, la specificità determina quale prevale. I selettori ID (0,1,0,0) prevalgono sui selettori di classe (0,0,1,0), che a loro volta prevalgono sui selettori di tipo (0,0,0,1). Gli stili inline prevalgono su tutti. !important prevale su qualsiasi altra regola: lo utilizzi solo come ultima risorsa.

Calcolo della specificità

Conti separatamente gli ID, le classi/attributi/pseudo-classi e i tipi. Confronti le colonne una alla volta. Esempio: #nav .link:hover = (0,1,1,1). .nav a = (0,0,1,1). Il primo selettore prevale.

/* Specificity: 0,0,1,1 — loses */
.nav a { color: red; }

/* Specificity: 0,1,1,1 — wins */
#nav .link:hover { color: blue; }

La cascata: l'ordine è importante

Quando la specificità è uguale, prevale la regola che compare più tardi nel foglio di stile. Questa è la C di CSS: la cascata. Sia l'ordine di importazione sia l'ordine di origine sono importanti.

Ereditarietà

Alcune proprietà CSS vengono ereditate per impostazione predefinita: gli elementi figli ricevono il valore del genitore senza che sia necessario impostarlo. Le proprietà relative al testo, come color, font-family e line-height, vengono ereditate. Le proprietà del modello a riquadri, come margin, no.

body {
  font-family: 'Inter', sans-serif; /* all text inherits this */
  color: #1a202c;                   /* all text inherits this */
}

I selettori :is() e :where()

:is() e :where() consentono di scrivere selettori concisi che corrispondono a uno qualsiasi degli elementi di un elenco. La differenza è che :is() eredita la specificità più alta dei propri argomenti, mentre :where() ha sempre specificità pari a zero.

/* Instead of h1 a, h2 a, h3 a: */
:is(h1, h2, h3) a {
  color: inherit;
}

Il selettore universale *

Il selettore universale * corrisponde a ogni elemento. Viene utilizzato comunemente nei reset CSS: *, *::before, *::after { box-sizing: border-box; } rende il modello a riquadri molto più prevedibile.

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

Stili predefiniti del browser

I browser applicano il proprio foglio di stile predefinito, il user agent stylesheet, prima del vostro. I reset CSS, come normalize.css, o i livelli CSS neutralizzano questi valori predefiniti, così lo stile parte da una base conosciuta.

Verifica rapida

Quale selettore ha la specificità più alta?

Riepilogo: selettori e cascata

Individui gli elementi con selettori di tipo, classe, ID, attributo e pseudo-classe. La specificità risolve i conflitti (ID > classi > tipi). La cascata risolve i casi di parità usando l'ordine di origine. L'ereditarietà propaga automaticamente gli stili del testo agli elementi discendenti.

Gratis per iniziare

Impara HTML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
41
Lezioni
163

Domande Frequenti

La lezione «Selettori e cascata» è gratuita?

Sì — il testo completo di «Selettori e cascata» è 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 Frontend Academy, passa a CoddyKit PRO. Il corso Frontend Academy include 4 lezioni in totale.

Cosa imparerò in «Selettori e cascata»?

Selezioni gli elementi con selettori di tipo, classe, ID e attributo. Comprenda specificità, ereditarietà e cascata per prevedere quali stili prevalgano. Eserciti Frontend 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 Frontend Academy?

Non è richiesta alcuna esperienza precedente. Frontend 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 1 di 4.

Quanto tempo richiede la lezione «Selettori e cascata»?

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 Frontend Academy?

Sì. Ogni lezione Frontend 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

  1. Selettori e cascata
  2. Colori, tipografia e box model
  3. Display: basi di block, inline, flex e grid
  4. Posizionamento: relative, absolute, fixed, sticky
← Torna a Frontend Academy