CSS Academy · Pelajaran

Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula

Pelajari sifat yang dipercepatkan GPU dan sifat yang mencetuskan pengecatan semula susun atur yang mahal.

Pelajaran 4 daripada 413 langkah

Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula ialah pelajaran CSS Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CSS Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CSS Academy merangkumi sejumlah 4 pelajaran.

Saluran Pemaparan

Pelayar memaparkan kandungan dalam tiga peringkat: Susun Atur (saiz + kedudukan) → Pengecatan (piksel) → Penggabungan (penggabungan lapisan GPU). Menganimasikan sifat yang mencetuskan peringkat lebih awal memerlukan banyak sumber.

Sifat yang Mencetuskan Susun Atur

Perubahan pada sifat ini memaksa pelayar mengira semula susun atur, mungkin untuk seluruh halaman. Elakkan daripada menganimasikannya:

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

Sifat yang Mencetuskan Pengecatan

Sifat ini melangkaui susun atur tetapi mengecat semula piksel. Kosnya sederhana:

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

Sifat Komposit Sahaja

Sifat ini melangkaui susun atur dan pengecatan — pelayar hanya perlu menggabungkan lapisan yang telah diraster. Kosnya sangat rendah dan dipercepatkan oleh GPU:

  • transform
  • opacity

Peraturan Emas Animasi CSS

Untuk animasi 60 bingkai sesaat yang lancar, animasikan hanya transform dan opacity. Gunakan transform: translate() dan bukannya top/left, serta opacity dan bukannya pudar melalui display.

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

Sifat will-change

will-change memberitahu pelayar supaya menaikkan elemen ke lapisan GPU tersendiri sebelum animasi bermula, sekali gus mengelakkan "kelipan penaikan" di tengah-tengah animasi.

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

will-change: auto

Tetapkan will-change: auto atau buang sifat itu sepenuhnya selepas animasi selesai. Mengekalkan terlalu banyak elemen yang dinaikkan akan membazirkan memori GPU.

Mengukur dengan DevTools

Gunakan tab Performance dalam Chrome DevTools untuk merakam dan memeriksa pemasaan bingkai. Tab Rendering boleh mengaktifkan kelipan pengecatan (lapisan hijau) untuk menunjukkan elemen yang dicat semula pada setiap bingkai.

transform Berbanding top/left

Pengoptimuman yang paling ketara: gantikan animasi kedudukan dengan transform:

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

Kos Peralihan Warna

Peralihan warna latar belakang mencetuskan pengecatan semula tetapi bukan susun atur. Peralihan ini sesuai untuk elemen kecil. Untuk latar belakang yang besar, pertimbangkan penggunaan elemen pseudo dengan peralihan kelegapan:

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

Sifat contain

Sifat contain memberikan petunjuk kepada pelayar bahawa sesuatu elemen dan pepohon bawahannya adalah bebas. Ini mengehadkan skop pembatalan susun atur dan meningkatkan prestasi pengecatan semula.

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

Semakan Pantas

Apakah dua sifat CSS yang boleh dianimasikan pada peringkat penggabungan tanpa mencetuskan susun atur atau pengecatan?

Ringkasan

Menganimasikan sifat susun atur (width, top, margin) mencetuskan pengiraan semula yang mahal. Sifat pengecatan (color, background) lebih murah. Hanya transform dan opacity dianimasikan pada peringkat penggabungan GPU tanpa mencetuskan susun atur atau pengecatan. Sentiasa utamakan sifat ini untuk animasi yang lancar dan berprestasi tinggi.

Percuma untuk bermula

Pelajari CSS dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
40
Pelajaran
159

Soalan Lazim

Adakah pelajaran “Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula” percuma?

Ya — teks penuh “Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CSS Academy, tingkat taraf kepada CoddyKit PRO. Kursus CSS Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula”?

Pelajari sifat yang dipercepatkan GPU dan sifat yang mencetuskan pengecatan semula susun atur yang mahal. Anda berlatih CSS Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan CSS Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran CSS Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran CSS Academy ini?

Ya. Setiap pelajaran CSS Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Tempoh dan Penentuan Masa Sifat Peralihan
  2. Fungsi Pelonggaran: ease linear cubic-bezier
  3. Menjalankan Peralihan bagi Berbilang Sifat
  4. Prestasi: Sifat Boleh Diubah Berbanding Sifat Dicat Semula
← Kembali ke CSS Academy