Rumah >hujung hadapan web >tutorial css >Adakah CSS `:not()` Menyasarkan Anak dan Cucu Terpilih Sahaja?

Adakah CSS `:not()` Menyasarkan Anak dan Cucu Terpilih Sahaja?

Susan Sarandon
Susan Sarandonasal
2024-12-14 18:57:23346semak imbas

Does CSS `:not()` Selectively Target Only Immediate Children and Grandchildren?

Adakah Pemilih :not() Melanjutkan kepada Keturunan Jauh?

Dalam CSS3, kelas pseudo :not() menyediakan cara untuk mengecualikan elemen tertentu daripada pemilih. Walau bagaimanapun, tingkah lakunya boleh mengelirukan apabila berurusan dengan keturunan yang jauh.

Pelaksanaan Semasa

Menurut dokumentasi rasmi dan analisis sokongan penyemak imbas, pemilih :not() sahaja terpakai untuk mengarahkan anak atau cucu elemen yang disasarkan.

Pertimbangkan ini contoh:

div *:not(p) { color: red; }

Peraturan ini akan menggayakan semua anak langsung atau cucu

yang bukan

elemen.

Walau bagaimanapun, pemilih :not() tidak melebihi anak cucu.

Isunya

Dalam contoh ini, :

<div>
    <ul>
        <li>This is red</li>
    </ul>
    <p>This is NOT</p>
    <blockquote><p>This is red but is not supposed to be!</p></blockquote>
</div>

Dalam kes ini,

elemen sepadan dengan keadaan *:not(p) kerana ia adalah keturunan
, manakala

elemen di dalamnya mewarisi warna merah.

Penyelesaian

Tingkah laku yang betul adalah untuk

elemen kekal sebagai warna lalainya. Untuk mencapai matlamat ini, peraturan harus menyasarkan semua

elemen secara langsung:

div p { color: black; }

Peningkatan Masa Depan dalam Pemilih CSS Tahap 4

Cadangan Pemilih CSS Tahap 4 meningkatkan pemilih :not() untuk menerima pemilih kompleks penuh dengan penggabung. Ini bermakna bahawa kami akan dapat menulis pemilih seperti:

p:not(div p) { color: red; }

Sntaks lanjutan ini akan membolehkan penyasaran yang lebih tepat bagi keturunan jauh.

Atas ialah kandungan terperinci Adakah CSS `:not()` Menyasarkan Anak dan Cucu Terpilih Sahaja?. 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