CSS Academy · Lezione

Stili per modal e dialog

Stilizzi gli elementi dialog nativi di HTML e le modal personalizzate con backdrop, posizionamento e animazioni.

Lezione 2 di 413 passaggi

Stili per modal e dialog è una lezione CSS Academy gratuita su CoddyKit. Questa è la lezione 2 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 CSS Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CSS Academy include 4 lezioni in totale.

Elemento dialog nativo

L'elemento HTML <dialog> offre un comportamento modale integrato: gestione del focus, chiusura con Escape e API showModal() / close(). Lo definisca con CSS invece di creare da zero l'infrastruttura di un modale personalizzato.

Stilizzazione del backdrop

Il pseudo-elemento ::backdrop definisce lo stile dell'overlay dietro un <dialog> aperto. Applichi uno sfondo semitrasparente: dialog::backdrop { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }. Non è necessario alcun wrapper div.

Layout del dialog

Centri i dialog con CSS: dialog { margin: auto; max-width: min(90vw, 640px); max-height: 90vh; overflow-y: auto; }. L'uso di margin: auto su un dialog lo posiziona al centro della viewport senza ricorrere al posizionamento tramite JS.

Scorrimento e overflow

Imposti overflow-y: auto sul dialog stesso per gestire i contenuti lunghi. Imposti overflow: hidden su body quando si apre il modale, per impedire lo scorrimento dello sfondo; aggiunga e rimuova una classe con JavaScript per attivare e disattivare questo comportamento.

Animazioni con CSS

Anime l'apertura del dialog usando @starting-style (Chrome 117+) per ottenere animazioni di ingresso gestite solo con CSS, senza JavaScript. Per una compatibilità più ampia, aggiunga una classe open con JavaScript e usi transition su transform e opacity: slide-up da translateY(20px) a translateY(0).

Sfida: animazione di chiusura

Animare la chiusura di un dialog è complesso: il dialog viene nascosto immediatamente quando si chiama close(). Le soluzioni sono usare la popover API, che supporta nativamente le animazioni di chiusura, oppure intercettare la chiusura con JavaScript, riprodurre la classe dell'animazione di uscita e chiamare close() al termine dell'animazione.

Gestione di z-index

I dialog vengono aperti sopra tutti gli altri contenuti della pagina. Eviti i conflitti tra z-index usando il contesto di impilamento nativo dell'elemento dialog: viene visualizzato nel top layer, sopra tutti i valori CSS di z-index, senza dover impostare z-index direttamente sul dialog.

Dialog responsivo

Sui dispositivi mobili, faccia scorrere i dialog dal basso come una sheet: dialog { margin: auto auto 0; width: 100%; border-radius: 16px 16px 0 0; max-height: 90vh; }. Su desktop, li centri come un modale tradizionale usando il pattern margin: auto.

Gestione del focus

L'elemento dialog nativo sposta automaticamente il focus sul primo elemento focalizzabile al suo interno quando viene aperto. Si assicuri che all'interno del dialog l'ordine di tabulazione sia logico. Aggiunga un pulsante di chiusura che, alla chiusura del dialog, restituisca il focus all'elemento trigger per garantire una corretta navigazione da tastiera.

Attributi di accessibilità

Aggiunga aria-labelledby con un riferimento al titolo del dialog e aria-describedby con un riferimento alla descrizione del dialog. Il ruolo del dialog è implicito per <dialog>. I lettori di schermo annunciano queste etichette quando il focus entra nel dialog.

Pattern per i dialog di conferma

I dialog di conferma devono includere: un titolo con una domanda chiara, una breve descrizione dell'impatto, un pulsante per l'azione distruttiva, rosso e allineato a destra, e un pulsante Annulla, allineato a sinistra o secondario. Usi autofocus sul pulsante Annulla per rendere la scelta sicura l'interazione da tastiera predefinita.

Verifica delle conoscenze

Qual è il vantaggio dell'utilizzo dell'elemento <dialog> nativo rispetto a un modale personalizzato basato su div?

Riepilogo

L'elemento dialog nativo, insieme a ::backdrop, al centraggio con margin: auto, al controllo dell'overflow, alle animazioni CSS per l'ingresso e alla gestione del focus, offre un pattern per modali completamente accessibile e gestito tramite CSS. I layout responsive a sheet sui dispositivi mobili e gli attributi ARIA appropriati completano un componente dialog pronto per la produzione.

Gratis per iniziare

Impara CSS 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
40
Lezioni
159

Domande Frequenti

La lezione «Stili per modal e dialog» è gratuita?

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

Cosa imparerò in «Stili per modal e dialog»?

Stilizzi gli elementi dialog nativi di HTML e le modal personalizzate con backdrop, posizionamento e animazioni. Eserciti CSS 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 CSS Academy?

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

Quanto tempo richiede la lezione «Stili per modal e dialog»?

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

Sì. Ogni lezione CSS 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. Componente card con proprietà personalizzate CSS
  2. Stili per modal e dialog
  3. Pattern per dropdown e popover
  4. Componente tab con :checked a confronto con JS
← Torna a CSS Academy