Rumah > hujung hadapan web > tutorial css > Mengapakah `.foo a:link` Mengatasi `a:hover` dalam Kekhususan CSS?

Mengapakah `.foo a:link` Mengatasi `a:hover` dalam Kekhususan CSS?

Barbara Streisand
Lepaskan: 2024-11-29 15:23:13
asal
628 orang telah melayarinya

Why Does `.foo a:link` Override `a:hover` in CSS Specificity?

Teka-teki Kekhususan Pemilih CSS: Mengapa .foo a:link Mengatasi a:hover

Dalam bidang CSS, kekhususan pemilih boleh menjadi sedikit penentu minda . Mari kita selami teka-teki menarik yang menunjukkan bagaimana pemilih .foo a:link boleh mengatasi pemilih a:hover dan a:active yang lebih spesifik.

Definisi Masalah

Pertimbangkan kod berikut:

<div class="foo">
    <a href="#">Example</a>
</div>
Salin selepas log masuk
a:link, a:visited {
    color: blue;
}

a:hover, a:active {
    color: red; 
}

.foo a:link, .foo a:visited {
    color: green;
}
Salin selepas log masuk

Jangkaannya ialah dengan melayang di atas pautan akan menjadikan ia merah, tetapi sebaliknya, ia kekal hijau. Tingkah laku yang membingungkan ini memerlukan pemeriksaan yang lebih teliti terhadap lata CSS.

Kekhususan dalam CSS

Kekhususan menentukan susunan peraturan CSS digunakan pada elemen. Kekhususan yang lebih tinggi menang daripada kekhususan yang lebih rendah. Formula berikut mengira kekhususan:

  • Gaya sebaris: 1, 0, 0, 0
  • Pemilih ID: 0, 1, 0, 0
  • Pemilih kelas: 0, 0, 1, 0
  • Kelas Pseudo dan unsur pseudo: 0, 0, 0, 1

Kekhususan Pemilih dalam Teka-teki

Mengira kekhususan pemilih kami:

  • a:pautan , a:dilawati, a:hover, a:aktif: 0, 0, 1, 1
  • .foo a:link, .foo a:dilawati: 0, 0, 2, 1

Seperti yang anda lihat, .foo a:link dan .foo a :pemilih yang dilawati mempunyai kekhususan yang lebih tinggi daripada pemilih a:hover dan a:aktif (2 > 1).

Kesimpulan

Sebab bagi tingkah laku yang mengejutkan itu ialah pemilih .foo a:link dan .foo a:dilawati mempunyai kekhususan yang lebih tinggi daripada a:hover dan a:active pemilih. Ini bermakna walaupun a:hover dan a:active lebih khusus dari segi kelas pseudonya, kekhususan kelas pemilih .foo menang.

Untuk membetulkan isu ini, pembetulan yang dicadangkan dalam masalah ( membatalkan ulasan .foo a:hover dan .foo a:peraturan aktif) adalah perlu. Dengan menambahkan peraturan ini dengan kekhususan yang sama seperti peraturan .foo a:link dan .foo a:visited, gaya a:hover dan a:active kini akan diutamakan.

Atas ialah kandungan terperinci Mengapakah `.foo a:link` Mengatasi `a:hover` dalam Kekhususan CSS?. 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