Stiamo cercando, da un paio di uscite, di trovare dei metodi per migliorare le tempistiche di painting della pagina, cercando di prioritizzare il repaint rispetto al reflow.
Questi meccanismi CSS si attivano quando uno stile viene applicato ad un elemento. Dunque, per arrivare all'obiettivo, dobbiamo conosce quali proprietà necessitano una o l'altra metodologia. Il reflow è richiesto da: width, height, padding, margin, top-left-bottom-right. Quelle che invece non ne hanno bisogno sono: transform, opacity, visibility.
Detto ciò, possiamo già ottimizzare il CSS. Nel prossimo box troviamo un esempio che utilizza transform, ma possiamo avvalerci dello stesso approccio per nascondere un elemento dalla pagina utilizzando opacity.
.box {
transition: left 0.3s ease;
position: relative;
}
.box:hover {
/* spostamento che richiede reflow */
left: 20px;
}
.box {
transition: transform 0.3s ease;
}
.box:hover {
/* spostamento che NON richiede reflow */
transform: translateX(20px);
}A valle di questa modifica, se la trasformazione è ricorrente, come nel caso di questo box o di un bottone mostrato in più punti della pagina, si può chiedere al browser di prepararsi a questa eventualità con will-change, in modo da ottimizzare ulteriormente i tempi.
.box {
will-change: transform;
}Attenzione a non abusare di questa proprietà perchè va ad appesantire il lavoro della CPU, dato che il browser tiene traccia di tutti gli elementi su cui viene predisposta.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Definire il colore di una scrollbar HTML tramite CSS
Evidenziare una porzione di testo in un pagina dopo una navigazione
Gestire progetti NPM in .NET Aspire
Ridimensionamento automatico input tramite CSS
Proteggere l'endpoint dell'agente A2A delle Logic App
Configuratione e utilizzo .NET Aspire CLI
Integrare OpenTelemetry direttamente in Azure Monitor
Integrare modelli AI in un workflow di GitHub
Supporto nativo a JSON in SQL Server 2025
Ospitare n8n su Azure App Service
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework


