cari
Rumahhujung hadapan webtutorial cssDebugging CSS untuk respons UI

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>

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');
    });
});
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;
}
, 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
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
Berapa banyak kekhususan yang ada @rules, seperti @keyframes dan @media?Berapa banyak kekhususan yang ada @rules, seperti @keyframes dan @media?Apr 18, 2025 am 11:34 AM

Saya mendapat soalan ini pada hari yang lain. Pemikiran pertama saya ialah: soalan pelik! Kekhususan adalah mengenai pemilih, dan at-peraturan bukan pemilih, jadi ... tidak relevan?

Bolehkah anda bersarang @media dan @support pertanyaan?Bolehkah anda bersarang @media dan @support pertanyaan?Apr 18, 2025 am 11:32 AM

Ya, anda boleh, dan ia tidak begitu penting dalam perintah apa. Preprocessor CSS tidak diperlukan. Ia berfungsi dalam CSS biasa.

Cache Cache PantasCache Cache PantasApr 18, 2025 am 11:23 AM

Anda pasti pasti menetapkan tajuk cache yang jauh pada aset anda seperti CSS dan JavaScript (dan imej dan fon dan apa sahaja yang lain). Yang memberitahu penyemak imbas

Dalam mencari timbunan yang memantau kualiti dan kerumitan CSSDalam mencari timbunan yang memantau kualiti dan kerumitan CSSApr 18, 2025 am 11:22 AM

Ramai pemaju menulis tentang bagaimana untuk mengekalkan asas CSS, namun tidak banyak daripada mereka menulis tentang bagaimana mereka mengukur kualiti asas kod tersebut. Pasti, kita ada

Datalist adalah untuk mencadangkan nilai tanpa menguatkuasakan nilaiDatalist adalah untuk mencadangkan nilai tanpa menguatkuasakan nilaiApr 18, 2025 am 11:08 AM

Pernahkah anda mempunyai bentuk yang perlu menerima sedikit teks yang sewenang -wenangnya? Seperti nama atau apa sahaja. Itu ' s betul -betul apa. Terdapat banyak

Persidangan Depan di ZürichPersidangan Depan di ZürichApr 18, 2025 am 11:03 AM

Saya sangat teruja untuk menuju ke Zürich, Switzerland untuk persidangan depan (suka nama dan url!). Saya tidak pernah ke Switzerland sebelum ini, jadi saya teruja

Membina aplikasi tanpa pelayan penuh dengan pekerja CloudflareMembina aplikasi tanpa pelayan penuh dengan pekerja CloudflareApr 18, 2025 am 10:58 AM

Salah satu perkembangan kegemaran saya dalam pembangunan perisian adalah kedatangan tanpa pelayan. Sebagai pemaju yang mempunyai kecenderungan untuk terjebak dalam butiran

Membuat Laluan Dinamik dalam Aplikasi NUXTMembuat Laluan Dinamik dalam Aplikasi NUXTApr 18, 2025 am 10:53 AM

Dalam siaran ini, kami akan menggunakan demo kedai e -dagang yang saya bina dan digunakan untuk Netlify untuk menunjukkan bagaimana kami boleh membuat laluan dinamik untuk data masuk. Ia adil

See all articles

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.