Nel CSS abbiamo la possibilità di definire, attraverso le media query, degli stili che verranno applicati in base alla dimensione della pagina. Ma possiamo rifarci anche a container, che così come le media query sono CSS at-rule: regole che impongono un determinato comportamento nel CSS.
Diversamente dalle media query, i container applicano regole sulla base della dimensione del container a cui sono applicati.
<div class="post"> <div class="card"> <h2>Card title</h2> <p>Card content</p> </div> </div>
.post { container-type: inline-size; } /* Quando la dimensione è inferiore ai 650px */ @container (width < 650px) { .card { width: 50%; color: white; background-color: black; font-size: 0.8em; } }
La proprietà container-type: inline-size permette al runtime di applicare ogni stile che intercetti una proprietà di tipo width. Se volessimo utilizzare sia l'altezza che la larghezza, dovremo invece scrivere container-type: size.
Una limitazione alla propagazione delle regole consiste nel nominare il container e richiamarlo all'interno della classe a cui andrà applicato tramite la proprietà container-name.
.post { container-name: mycard; container-type: inline-size; } .post1 { container-type: inline-size; } @container mycard (width < 650px) { .card { width: 50%; color: white; background-color: black; font-size: 0.8em; } }
Anche se la classe .post1 è abilitata a ricevere le modifiche provenienti da @container, sull'interfaccia non verrà applicata alcuna modifica, dato che per applicare tali stili occorrerà definire il container-name: mycard, così come specificato all'interno di .post
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Generare velocemente pagine CRUD in Blazor con QuickGrid
Gestione dell'annidamento delle regole dei layer in CSS
Usare una container image come runner di GitHub Actions
Usare le collection expression per inizializzare una lista di oggetti in C#
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Generare la software bill of material (SBOM) in GitHub
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare database e servizi con gli add-on di Container App
Sfruttare al massimo i topic space di Event Grid MQTT