Rumah > hujung hadapan web > tutorial css > Mengapa WebKit Tidak Mengemas Kini Gaya Secara Automatik, dan Bagaimana Saya Boleh Mengecat Semula Secara Paksa?

Mengapa WebKit Tidak Mengemas Kini Gaya Secara Automatik, dan Bagaimana Saya Boleh Mengecat Semula Secara Paksa?

Linda Hamilton
Lepaskan: 2024-12-20 17:34:09
asal
721 orang telah melayarinya

Why Doesn't WebKit Update Styles Automatically, and How Can I Force a Repaint?

Memaksa WebKit Mengemas kini Gaya

Anda menghadapi isu di mana perubahan gaya yang digunakan melalui JavaScript tidak disebarkan kepada semua elemen yang terjejas dalam Penyemak imbas berasaskan WebKit seperti Chrome dan Safari. Ini kadangkala boleh dilihat apabila berbilang elemen mewarisi gaya daripada nenek moyang yang sama dengan kanak-kanak yang mempunyai fokus atau mengandungi elemen interaktif seperti pautan.

Ketidak Responsif WebKit

WebKit tidak mengecat semula secara automatik apabila ia menerima kemas kini kepada gaya yang diwarisi. Ini berbeza dengan penyemak imbas lain seperti Firefox, Opera dan IE, yang mengendalikan perubahan ini dengan lebih lancar.

Memaksa Mengecat Semula Melalui Nudging

Memandangkan WebKit tidak mengemas kini gaya secara automatik, anda boleh mengecat semula secara paksa dengan membuat perubahan kecil pada mana-mana elemen pada halaman. Dalam Alat Pembangun Chrome, anda mendapati bahawa walaupun menyahtanda dan menyemak semula atribut unsur sewenang-wenangnya mencetuskan kemas kini gaya yang betul.

Penyelesaian Cadangan

Untuk memaksa mengecat semula secara pemprograman , anda boleh menggunakan teknik berikut:

sel.style.display = 'none';
sel.offsetHeight; // no need to store this anywhere, just referencing it is sufficient
sel.style.display = '';
Salin selepas log masuk

Pendekatan ini melibatkan menyembunyikan sementara dan kemudian menyahsembunyikan unsur. Garis offsetHeight memastikan bahawa penyemak imbas benar-benar menggunakan perubahan. Anda tidak perlu menyimpan ketinggian yang dikembalikan.

Had Potensi

Penyelesaian yang disediakan disahkan berfungsi untuk elemen dengan paparan "blok". Ada kemungkinan ia mungkin menunjukkan gelagat berbeza untuk elemen dengan mod paparan lain, tetapi ini memerlukan penyiasatan lanjut.

Atas ialah kandungan terperinci Mengapa WebKit Tidak Mengemas Kini Gaya Secara Automatik, dan Bagaimana Saya Boleh Mengecat Semula Secara Paksa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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