Mengapa :hover dan Berbilang Pemilih Adik Beradik Bersebelahan Menyebabkan Pepijat dalam Safari dan Chrome?

Patricia Arquette
Lepaskan: 2024-10-24 03:42:30
asal
967 orang telah melayarinya

Why Do :hover and Multiple Adjacent-Sibling Selectors Cause Bugs in Safari and Chrome?

Safari dan Chrome Bug dengan :hover dan Berbilang Pemilih Adik Beradik Bersebelahan

Dalam pembangunan web, menggunakan :hover pseudo-class dan bersebelahan -pemilih adik beradik biasanya disokong oleh penyemak imbas utama seperti Safari, Chrome, Opera dan Firefox. Contohnya, kod berikut berfungsi seperti yang dimaksudkan:

a:hover + div {}
Salin selepas log masuk

Walau bagaimanapun, apabila berbilang pemilih adik beradik bersebelahan ditambah, penyemak imbas Webkit (termasuk Safari dan Chrome) mempamerkan tingkah laku yang tidak dijangka:

div:hover + a + div {}
Salin selepas log masuk

Dalam kes sedemikian, Webkit gagal menggunakan gaya seperti yang dijangkakan.

Penyelesaian untuk menangani pepijat ini ialah dengan menggunakan pengisytiharan gaya pada elemen badan untuk mencipta kesan animasi yang halus:

body { -webkit-animation: bugfix infinite 1s; }

@-webkit-keyframes bugfix { 
  from { padding: 0; } 
  to { padding: 0; } 
}
Salin selepas log masuk

Animasi ini tidak mempunyai kesan yang boleh dilihat tetapi mencetuskan pengiraan semula gaya, membenarkan penyemak imbas Webkit menggunakan gaya pemilih :hover dan adik beradik bersebelahan.

Berikut ialah contoh untuk menunjukkan penyelesaiannya: http://jsfiddle. net/jalbertbowdenii/ds2yY/1/.

Dengan menggunakan teknik ini, anda boleh mengatasi pepijat Webkit dan memastikan tingkah laku yang konsisten merentas pelayar yang berbeza.

Atas ialah kandungan terperinci Mengapa :hover dan Berbilang Pemilih Adik Beradik Bersebelahan Menyebabkan Pepijat dalam Safari dan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!