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.
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>
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).
Rajah 3.17. Output garis masa penukaran kedudukan kiri di Internet Explorer 11 Pelayar
Rajah 3.20.
left
. left
-webkit-transform
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. Sebaik sahaja anda tahu sifat mana
transform
Atas ialah kandungan terperinci Debugging CSS untuk respons UI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Ya, youdyhouldlearnbothflexboxandgrid.1) flexboxisidealforone-dimensi, flexiblelayoutslikenavigasiMenus.2)

Apa yang kelihatan seperti refactor kod anda sendiri? John Rhea memisahkan animasi CSS lama yang dia tulis dan berjalan melalui proses pemikiran mengoptimumkannya.

Csanimationsarenotinherenthardbutrequirepracticeandundunderpanderofcsspropertiesandtimingfunctions.1) startwithsimpleanimationslikescalingabuttonhoverusingkeyframes.2)

@keyframesispopularduetoitsversatilityAndPowerIncreatingSmoothcsSanimations.KeyTrickSinclude: 1) definisiMoothTransitionSbetweenStates, 2) AnimatingMultiplePropertiSti

Csscountersareusedtomanageautomaticnumberinginwebdesigns.1) mereka yang boleh dimanfaatkan, listitems, andcustomnumbering.2) AdvancedusesIndenestedNumberingsystems.3) cabaran yang terkandung di dalam cabaran

Menggunakan bayang -bayang skrol, terutamanya untuk peranti mudah alih, adalah sedikit UX yang telah diliputi oleh Chris sebelum ini. Geoff merangkumi pendekatan yang lebih baru yang menggunakan harta animasi-masa. Berikut adalah satu lagi cara.

Mari kita lari melalui penyegaran cepat. Peta imej tarikh kembali ke HTML 3.2, di mana, pertama, peta sisi pelayan dan kemudian peta sisi klien yang ditakrifkan di atas imej menggunakan elemen peta dan kawasan.

Kajian Negeri Devs kini dibuka untuk penyertaan, dan tidak seperti tinjauan sebelumnya ia meliputi segala -galanya kecuali kod: kerjaya, tempat kerja, tetapi juga kesihatan, hobi, dan banyak lagi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod
