Rumah hujung hadapan web tutorial css Debugging CSS untuk respons UI

Debugging CSS untuk respons UI

Feb 18, 2025 pm 01:13 PM

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Apr 02, 2025 pm 06:17 PM

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That &#039; s seperti ini.

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Apr 02, 2025 am 04:27 AM

Jika kita perlu menunjukkan dokumentasi kepada pengguna secara langsung dalam editor WordPress, apakah cara terbaik untuk melakukannya?

Membandingkan penyemak imbas untuk reka bentuk responsif Membandingkan penyemak imbas untuk reka bentuk responsif Apr 02, 2025 pm 06:25 PM

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

Cara menggunakan grid CSS untuk tajuk dan kaki melekit Cara menggunakan grid CSS untuk tajuk dan kaki melekit Apr 02, 2025 pm 06:29 PM

CSS Grid adalah koleksi sifat yang direka untuk menjadikan susun atur lebih mudah daripada yang pernah berlaku. Seperti apa -apa, ada sedikit keluk pembelajaran, tetapi grid adalah

Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Apr 05, 2025 pm 05:51 PM

Soalan mengenai kawasan slash ungu dalam susun atur flex Apabila menggunakan susun atur flex, anda mungkin menghadapi beberapa fenomena yang mengelirukan, seperti dalam alat pemaju (D ...

See all articles