Rumah > hujung hadapan web > tutorial css > Debugging CSS untuk respons UI

Debugging CSS untuk respons UI

Jennifer Aniston
Lepaskan: 2025-02-18 13:13:14
asal
659 orang telah melayarinya

Artikel ini dikutip dari buku "The Master of CSS" yang ditulis oleh Tiffany Brown. Buku ini boleh didapati di kedai buku utama di seluruh dunia, dan anda juga boleh membeli versi e-book di sini.

Apakah penyusunan semula? {.title}

Penyusunan semula merujuk kepada mana -mana operasi yang mengubah sebahagian atau semua susun atur halaman. Sebagai contoh, tukar saiz elemen atau kemas kini kedudukan kirinya. Mereka menyebabkan penyemak imbas untuk mengira semula ketinggian, lebar, dan kedudukan unsur -unsur lain dalam dokumen.

mengecat semula (mengecat) adalah sama dengan mengecat semula, dan memaksa pelayar untuk membuat semula sebahagian dokumen. Sebagai contoh, menukar warna tetikus apabila melayang di atas butang adalah operasi redraw. Redraw mempunyai kesan yang kurang pada penyusunan semula kerana ia tidak menjejaskan saiz atau kedudukan nod;

Penyusunan semula dan redrawing biasanya dicetuskan oleh operasi DOM, seperti menambah atau mengeluarkan elemen. Tetapi mereka juga boleh disebabkan oleh perubahan atribut yang mempengaruhi saiz unsur, penglihatan, atau kedudukan. Ini benar sama ada perubahan itu disebabkan oleh JavaScript atau animasi berasaskan CSS.

nota: Page Loading {.title}

Apabila halaman dimuatkan, penyemak imbas menghancurkan HTML, CSS, dan JavaScript awal, yang selalu mencetuskan penyusunan semula dan redrawing.

Sukar untuk mengelakkan penyisihan semula dan penyusunan semula dalam projek. Walau bagaimanapun, kita boleh menggunakan alat garis masa untuk mengenal pasti mereka dan mengurangkan kesannya.

alat garis masa {.title}

Alat garis masa boleh menjadi sedikit mengelirukan pada mulanya. Mereka mengukur prestasi front-end dan merekodkan masa yang diperlukan untuk pelbagai tugas untuk diselesaikan. Dengan merakam aktiviti semasa berinteraksi dengan halaman, kita dapat mengetahui kod CSS yang boleh menyebabkan kesesakan prestasi.

Untuk menggunakan garis masa, klik tab Timeline dalam antara muka Alat Pemaju. Dalam Chrome, Opera, dan Firefox, ia bernama "garis masa" yang tepat. Safari menamakannya bentuk plural "garis masa". Internet Explorer 11 menggunakan nama yang lebih deskriptif "respons UI".

[9]

Dalam mana -mana penyemak imbas, tekan butang "Rekod" untuk memulakan proses rakaman. Berinteraksi dengan bahagian halaman yang mempunyai masalah, dan apabila selesai, klik butang yang sepadan untuk menghentikan rakaman.

Bergantung pada penyemak imbas yang anda gunakan, anda boleh melihat data dengan segera, atau selepas menghentikan rakaman. Data paparan Safari dan Firefox dalam masa nyata, manakala Chrome, Opera, dan Internet Explorer membuat carta prestasi selepas anda berhenti merakam.

Memuatkan dokumen, panggilan fungsi, peristiwa DOM, pengiraan semula gaya, dan operasi lukisan semuanya direkodkan dalam setiap penyemak imbas, yang membolehkan kami menggariskan kesesakan prestasi. Bagi prestasi CSS, kita perlu memberi tumpuan kepada sekurang -kurangnya dua aspek yang berkaitan:

  • banyak pengiraan semula gaya dan operasi lukisan
  • operasi yang memakan masa yang lama, blok yang lebih besar dalam garis masa mewakili

Untuk memahami keadaan sebenar, kami akan membandingkan dua dokumen asas, contoh A dan Contoh B. Dalam kedua -dua kes, kita memindahkan satu siri elemen div {.literal} dari kedudukan x 0 hingga x kedudukan 1000. Kedua -dua contoh menggunakan penukaran CSS. Walau bagaimanapun, dalam contoh A, kita akan menghidupkan atribut left. Dalam Contoh B, kami akan menggunakan transformasi transformasi dan menghidupkan atribut transform.

Tanda kedua -dua contoh adalah sama (hasilnya ditunjukkan dalam Rajah 3.16):

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <title>Performance example</title>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <button type="button" id="move">Move</button>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <🎜>
  </body>
</html>
Salin selepas log masuk

Debugging CSS for UI Responsiveness

Rajah 3.16. Mengklik butang "Move" akan menukar
kelas pada setiap elemen div: moved

var move = document.getElementById('move');
move.addEventListener('click', function(e) {
    var objs = document.body.querySelectorAll('div');
    Array.prototype.forEach.call(objs, function(o){
        o.classList.toggle('moved');
    });
});
Salin selepas log masuk
Kod CSS kami adalah bahagian yang berbeza dari kedua -duanya. CSS yang digunakan dalam Contoh A adalah seperti berikut:

Selepas
div {
  background: #36f;
  margin-bottom: 1em;
  width: 30px;
  height: 30px;
  position: relative;
  left: 0;
  transition: left 2s ease-in;
}

.moved {
    left: 1000px;
}
Salin selepas log masuk
, animasi ini akan menghasilkan sejumlah besar pengiraan gaya dan penunjuk semula dalam garis masa kami. Imej berikut menunjukkan output garis masa penukaran ini dalam safari (Rajah 3.17), Chrome (Rajah 3.18), Internet Explorer (Rajah 3.19), dan Firefox (Rajah 3.20).

Debugging CSS for UI Responsiveness Rajah 3.17. Output garis masa penukaran kedudukan kiri di Internet Explorer 11 Pelayar

Debugging CSS for UI Responsiveness Rajah 3.20.
.
atribut mencetuskan penyusunan semula apabila diubah, walaupun perubahan itu disebabkan oleh animasi atau transformasi. Debugging CSS for UI Responsiveness
Sekarang, mari kita lihat CSS Contoh B:
Debugging CSS for UI Responsiveness
di sini kita menggunakan penukaran dan menukar antara
dan left. left

Dalam kebanyakan penyemak imbas, penukaran tidak mencetuskan penyusunan semula, dan garis masa kami akan mengandungi operasi pengecatan yang lebih sedikit. Ini terbukti dalam safari (Rajah 3.21), krom (Rajah 3.22), dan Internet Explorer (Rajah 3.23). Firefox adalah pengecualian; Bandingkan Rajah 3.20 dan Rajah 3.24. Garis masa penukaran kiri dan transformasi penukaran sangat serupa.

Debugging CSS for UI Responsiveness

Rajah 3.21. Penyemak imbas -webkit-transform
Debugging CSS for UI Responsiveness Rajah 3.23. kod yang akan dikeluarkan {.title}
transform Malangnya, tidak ada senarai yang jelas tentang sifat -sifat yang akan menyebabkan penyusunan semula dan redrawing. Pencetus CSS Paul Lewis adalah yang paling dekat, tetapi ia adalah khusus krom. Walau bagaimanapun, penyemak imbas juga berkelakuan sama untuk kebanyakan sifat ini, jadi sumber ini sekurang -kurangnya memberi anda idea yang mana sifat boleh menyebabkan masalah.
Debugging CSS for UI Responsiveness Sebaik sahaja anda tahu sifat mana
mungkin bermasalah, langkah seterusnya adalah untuk menguji hipotesis. Gunakan komen atau tambahkan awalan
sementara untuk melumpuhkan harta dan ulangi ujian garis masa. Debugging CSS for UI Responsiveness
ingat bahawa prestasi adalah relatif, tidak mutlak atau sempurna. Matlamatnya adalah untuk memperbaiki: menjadikannya lebih baik daripada sebelumnya. Jika prestasi atribut atau kesan terlalu lambat untuk diterima, ia dikeluarkan sepenuhnya. transform

Atas ialah kandungan terperinci Debugging CSS untuk respons UI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan