"Ke arah manakah enjin pemilih membaca, betul-betul?"
Kebijaksanaan konvensional berpendapat bahawa enjin pemilih CSS biasanya membaca dari kanan ke kiri . Walau bagaimanapun, arah penilaian yang tepat boleh berbeza-beza bergantung pada penyemak imbas dan pelaksanaan.
Lazimnya, penyemak imbas menilai pemilih dari kanan ke kiri untuk menavigasi penggabung. Contohnya, dalam bahagian pemilih > div.second > div.third, enjin menyemak sama ada elemen adalah div.third sebelum memeriksa sama ada induknya ialah div.second dan seterusnya ke atas hierarki.
Mengenai perbandingan prestasi antara .name dan div.name, susunan yang tepat penilaian boleh berubah-ubah dan berbeza secara meluas merentas pelayar. Malah prestasi teori sebahagian besarnya bergantung pada pelaksanaan.
Walaupun penilaian kanan ke kiri merentas penggabung, tidak mungkin tertib ini berlanjutan ke peringkat pemilih mudah dalam pemilih kompaun. Contohnya, dalam pemilih div:hover[data-foo="bar"].name:nth-child(5)::after, tiada jaminan yang ditetapkan bahawa kriteria akan disemak dengan cara yang ketat dari kanan ke kiri .
Sebaliknya, jenis pemilih mudah tertentu mungkin diutamakan atas sebab prestasi. Sebagai contoh, pemilih ID biasanya dikendalikan terlebih dahulu. Jadi, sama ada pemilih ditulis sebagai div#foo.bar:first-child atau div.bar:first-child#foo, Gecko (digunakan oleh Firefox) akan menilai ID dan kelas terlebih dahulu, tanpa mengira kedudukannya.
Akhirnya, sukar untuk meramalkan pemilih yang akan berprestasi lebih pantas dalam konteks tertentu. Prestasi boleh berbeza berdasarkan struktur dokumen, pelaksanaan dan juga merentas penyemak imbas yang berbeza.
Atas ialah kandungan terperinci Arah Mana Yang Dibaca Enjin Pemilih, Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!