Rumah >hujung hadapan web >tutorial css >Mengapa Saya Tidak Boleh Menyembunyikan Elemen Pseudo Menggunakan Penggabung Adik Beradik dan Bagaimana Saya Boleh Mencapai Ini?

Mengapa Saya Tidak Boleh Menyembunyikan Elemen Pseudo Menggunakan Penggabung Adik Beradik dan Bagaimana Saya Boleh Mencapai Ini?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 17:55:12561semak imbas

Why Can't I Hide a Pseudo-Element Using Sibling Combinators and How Can I Achieve This?

Menyasarkan Pseudo-Elements dengan Sibling Combinators

Dalam percubaan untuk menyembunyikan pseudo-element yang dijana selepas tag anchor tertentu namun mengelakkan imej pembalut tersebut, CSS berikut telah dilaksanakan :

a[href^="http"]:after {
    /* Styling for the pseudo-element */
}

a[href^="http"] img ~ :after {
    display: none;
}

Walau bagaimanapun, pendekatan ini gagal pada perkara berikut HTML:

<a href="http://google.com">Test</a>
<a href="http://google.com">
    <img src="https://www.google.com/logos/classicplus.png">
</a>

Mengapa percubaan ini gagal?

Jawapan:

Mensasarkan elemen pseudo (:selepas) dengan penggabung adik beradik (|) tidak mungkin kerana kandungan elemen pseudo tidak dipaparkan dalam DOM dan tidak memanipulasinya. Oleh itu, CSS tidak boleh mengubah suai DOM untuk menyembunyikan unsur pseudo berdasarkan kehadiran imej adik beradik. Seperti yang dinyatakan dalam spesifikasi CSS2:

"Kandungan yang dijana tidak mengubah pepohon dokumen."

Untuk menyelesaikan isu ini, anda boleh mempertimbangkan untuk menggunakan JavaScript untuk menyembunyikan unsur pseudo secara dinamik berdasarkan kehadiran imej adik beradik.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyembunyikan Elemen Pseudo Menggunakan Penggabung Adik Beradik dan Bagaimana Saya Boleh Mencapai Ini?. 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