Rumah >hujung hadapan web >tutorial css >Mengapa `text-decoration: none;` CSS Saya Tidak Mengatasi Elemen Bersarang?

Mengapa `text-decoration: none;` CSS Saya Tidak Mengatasi Elemen Bersarang?

DDD
DDDasal
2024-12-29 17:30:11477semak imbas

Why Doesn't My CSS `text-decoration: none;` Override Nested Elements?

Menyelesaikan masalah Penggantian hiasan teks CSS

Kebimbangan anda mengenai kod CSS anda tidak mengatasi sifat hiasan teks adalah cabaran biasa yang dihadapi oleh ramai pengaturcara. Mari kita selami isu ini dan cari penyelesaian.

Kunci untuk memahami isu ini terletak pada gelagat hiasan teks, yang berbeza daripada sifat berkaitan fon lain seperti berat fon. Apabila digunakan, hiasan teks mempengaruhi semua elemen bersarang, tanpa mengira kekhususannya. Ini dijelaskan dalam spesifikasi W3C:

Text decorations on inline boxes are drawn across the entire element, going across any descendant elements without paying any attention to their presence.

Dalam kod anda, hiasan teks: tiada; peraturan, yang sepatutnya menghalang garis bawah, digunakan pada elemen li dengan kelas u. Walau bagaimanapun, kerana hiasan teks mempengaruhi elemen bersarang juga, garis bawah kekal dalam elemen li bersarang dengan kelas u.

Untuk menyelesaikan isu ini, anda boleh menggunakan gabungan kekhususan CSS dan bersarang:

ul > li {
    text-decoration: none;
}
ul > li.u {
    text-decoration: underline;
}
ul > li > ul > li {
    text-decoration: line-through; /* Apply a different line-through style */
}
ul > li > ul > li.u {
    text-decoration: underline;
}

Dengan menggunakan pendekatan ini, gaya garisan digunakan pada elemen li bersarang tanpa menjejaskan elemen li luar. Sebagai alternatif, anda juga boleh menggunakan sifat warisan secara eksplisit untuk menetapkan hiasan teks untuk elemen bersarang:

ul > li > ul {
    text-decoration: inherit;
}

Ingat, semasa menyelesaikan masalah CSS, memahami cara sifat berkelakuan dan peraturan kekhususan boleh membantu anda mencari yang berkesan penyelesaian.

Atas ialah kandungan terperinci Mengapa `text-decoration: none;` CSS Saya Tidak Mengatasi Elemen Bersarang?. 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