CSS Academy · Lektion

Prestanda: transformerbara egenskaper kontra ommålning

Lär Er vilka egenskaper som GPU-accelereras och vilka som utlöser kostsamma layoutomritningar.

Lektion 4 av 413 steg

Prestanda: transformerbara egenskaper kontra ommålning är en gratis lektion i CSS Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CSS Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CSS Academy innehåller totalt 4 lektioner.

Renderingspipeline

Webbläsare renderar i tre steg: Layout (storlek + position) → Paint (pixlar) → Composite (sammanslagning av GPU-lager). Det är kostsamt att animera egenskaper som utlöser tidigare steg.

Egenskaper som utlöser layout

Om dessa egenskaper ändras måste webbläsaren beräkna om layouten för potentiellt hela sidan. Undvik att animera dem:

  • width, height
  • margin, padding
  • top, left
  • font-size
  • display

Egenskaper som utlöser målning

Dessa hoppar över layouten men målar om pixlarna. De är måttligt kostsamma:

  • background-color
  • color
  • box-shadow
  • border

Egenskaper som endast påverkar kompositionen

Dessa hoppar över både layout och målning – webbläsaren behöver bara kompositera förhandsrasteriserade lager. De är mycket billiga och GPU-accelererade:

  • transform
  • opacity

CSS-animationens gyllene regel

För mjuka animationer i 60 fps ska ni endast animera transform och opacity. Använd transform: translate() i stället för top/left, och opacity i stället för toningar med display.

  <div class="box demo-active">Box</div>

Egenskapen will-change

will-change talar om för webbläsaren att flytta ett element till ett eget GPU-lager innan animationen startar, så att en plötslig lagerflyttning mitt i animationen förhindras.

  <div class="animated">Animated</div>

will-change: auto

Ange will-change: auto eller ta bort egenskapen helt när animationerna är klara. Om för många element ligger i egna lager slösas GPU-minne.

Mäta med DevTools

Använd fliken Performance i Chrome DevTools för att spela in och granska bildrutornas tidsåtgång. På fliken Rendering kan ni aktivera visning av ommålningar (grönt överlägg) för att se vilka element som målas om i varje bildruta.

transform i stället för top/left

Den mest effektiva optimeringen är att ersätta positionsanimationer med transform:

  <div class="fly demo-active">Fly</div>

Kostnaden för färgövergångar

Övergångar för bakgrundsfärger utlöser ommålning men inte layout. De är acceptabla för små element. För stora bakgrunder kan ni i stället använda ett pseudo-element med en övergång för opacity:

  <button class="btn demo-active">Hover me</button>

Egenskapen contain

Egenskapen contain talar om för webbläsaren att ett element och dess underträd är fristående. Det begränsar omfånget för ogiltigförklarad layout och förbättrar prestandan vid ommålning.

  <div class="widget">Widget</div>

Snabbtest

Vilka två CSS-egenskaper kan animeras i kompositionssteget utan att utlösa layout eller målning?

Sammanfattning

Om ni animerar layoutegenskaper (width, top, margin) utlöses kostsamma omberäkningar. Målingsegenskaper (color, background) är billigare. Endast transform och opacity animeras i GPU:ns kompositionssteg utan att utlösa layout eller målning. Föredra alltid dessa för mjuka animationer med god prestanda.

Gratis att börja

Lär dig CSS med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
40
Lektioner
159

Vanliga frågor

Är lektionen ”Prestanda: transformerbara egenskaper kontra ommålning” gratis?

Ja – hela texten till ”Prestanda: transformerbara egenskaper kontra ommålning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CSS Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i CSS Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Prestanda: transformerbara egenskaper kontra ommålning”?

Lär Er vilka egenskaper som GPU-accelereras och vilka som utlöser kostsamma layoutomritningar. Ni övar på CSS Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig CSS Academy?

Du behöver inga förkunskaper. Utbildningen i CSS Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Prestanda: transformerbara egenskaper kontra ommålning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här CSS Academy-lektionen?

Ja. Varje CSS Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Varaktighet och tidsinställning för övergångar
  2. Easing-funktioner: ease linear cubic-bezier
  3. Övergångar för flera egenskaper
  4. Prestanda: transformerbara egenskaper kontra ommålning
← Tillbaka till CSS Academy