Rumah >hujung hadapan web >tutorial css >Mengapa Pemilih `:not()` Berkelakuan Berbeza dalam Safari Berbanding Chrome dan Firefox?

Mengapa Pemilih `:not()` Berkelakuan Berbeza dalam Safari Berbanding Chrome dan Firefox?

DDD
DDDasal
2024-11-27 09:03:11618semak imbas

Why Does the `:not()` Selector Behave Differently in Safari Compared to Chrome and Firefox?

:not() Percanggahan Pemilih: Safari berbanding Chrome/Firefox

Pemilih CSS :not(), digunakan untuk mengecualikan elemen tertentu daripada pilihan, didapati berkelakuan berbeza dalam Safari berbanding Chrome dan Firefox. Percanggahan ini telah menyebabkan kekeliruan bagi pembangun, menyebabkan penyiasatan terhadap punca asasnya.

Menurut pemerhatian baru-baru ini, Safari kini menyokong sepenuhnya spesifikasi tahap 4 :not(), yang membenarkan pemilih kompleks dalam hujahnya. Ciri ini membawanya ke dalam penjajaran dengan pelaksanaan jQuery. Walau bagaimanapun, Chrome dan Firefox pada masa ini hanya menyokong pemilih mudah sebagai argumen untuk :not().

Anomali pemilih :not() berpunca daripada penggunaan pemilih kompleks dalam kurungannya. Pemilih kompleks terdiri daripada berbilang pemilih ringkas yang digabungkan oleh penggabung, seperti keturunan, adik beradik bersebelahan dan adik beradik am. Dalam coretan kod yang disediakan, p div pemilih mewakili pemilih kompleks, kerana ia menggabungkan dua pemilih mudah (p dan div) dengan penggabung turunan.

Memandangkan Chrome dan Firefox tidak menyokong pemilih kompleks untuk :not( ) argumen, bahagian p div dalam kod yang disediakan tidak dikenali. Akibatnya, pemilih :not() diabaikan dengan berkesan dan peraturan sandaran em:not(...) digunakan. Peraturan sandaran ini, yang menentukan merah sebagai warna untuk semua elemen, bertanggungjawab untuk teks merah yang diperhatikan dalam Chrome dan Firefox.

Sebaliknya, Safari, dengan sokongannya untuk pemilih kompleks dalam :not() , mengecualikan elemen dengan betul dalam

elemen daripada spesifikasi warna merah. Ini menghasilkan teks biru yang dipaparkan dalam Safari.

Pada masa ini, garis masa bila Chrome dan Firefox akan menyokong pemilih kompleks untuk :not() masih tidak pasti. Walau bagaimanapun, pelaksanaan spesifikasi tahap 4 dalam Safari merupakan perkembangan penting yang menyelaraskannya dengan piawaian web terkini dan menyediakan fungsi yang dipertingkatkan untuk pemilih CSS.

Atas ialah kandungan terperinci Mengapa Pemilih `:not()` Berkelakuan Berbeza dalam Safari Berbanding Chrome dan Firefox?. 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