Nei precedenti script abbiamo introdotto il funzionamento, la differenza e il caso d'uso di Container Queries e Media Queries. Ora andiamo a utilizzare un template HTML che, per finalità di demo, resterà elementare, ma ci consentirà di apprezzare ogni singola modifica che verrà applicata.
<div class="content-container"> <div class="content"> <p>Contenuto responsive</p> </div> </div>
Impostiamo ora il css in modo che il container venga modificato solo nelle spaziature e il contenuto negli stili.
.content-container { flex: 1; display: flex; justify-content: center; align-items: center; padding: 2rem; } /* Media query */ @media (max-width: 768px) { .content-container { padding: 1rem; } } .content { container-type: inline-size; container-name: content-box; background-color: white; border: 2px solid #ccc; } /* piccolo */ @container content-box (max-width: 400px) { .content { background-color: lightblue; border-color: blue; font-size: 0.8rem; } } /* medio */ @container content-box (min-width: 401px) and (max-width: 800px) { .content { background-color: lightgreen; border-color: green; font-size: 1rem; } } /* largo */ @container content-box (min-width: 801px) { .content { background-color: lightcoral; border-color: red; font-size: 1.2rem; } }
Diversamente dalle Media Queries, le Container Queries non hanno breakpoint standardizzati ma dovrà essere lo sviluppatore a definirli sulla base di ogni singola variazione del layout. Questa diversità è un punto da tenere sotto controllo perchè, per esempio, possiamo immaginare un Grid system da due colonne, che in mobile diventerà una, ma in cui la singola colonna può potenzialmente superare una data dimensione, sia che sia visualizzata su una viewport grande che su una piccola. In questa casistica il layout cambierà 4 volte nel passaggio da una finestra larga a una piccola.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestione dell'annidamento delle regole dei layer in CSS
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Utilizzare Container Queries nominali
Simulare Azure Cosmos DB in locale con Docker
Integrare un servizio esterno con .NET Aspire
Scrivere selettori CSS più semplici ed efficienti con :is()
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Generare un hash con SHA-3 in .NET
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Ottimizzare le performance usando Span<T> e il metodo Split
Rendere le variabili read-only in una pipeline di Azure DevOps
Eseguire query in contemporanea con EF