Pengenalan
Dalam konteks ini, kami mempunyai dua div tanpa sebarang penggayaan kompleks (warna latar belakang sahaja). Kami memanipulasi div kedua untuk bertindih dengan yang pertama dengan menggunakan margin atas negatif. Walau bagaimanapun, daripada melihat satu elemen bertindih sepenuhnya dengan yang lain, kami mendapati div kedua menggelongsor antara kandungan dan latar belakang div pertama, menunjukkan tingkah laku yang tidak dijangka.
Tempahan Lukisan
Untuk memahami tingkah laku ini, kita perlu menyelidiki selok-belok susunan lukisan dalam pelayar. Susunan lukisan untuk elemen dalam konteks tindanan mengikut urutan yang dipratakrifkan:
Menjelaskan Pertindihan
Dalam contoh kita, apabila div kedua bertindih dengan yang pertama , urutan lukisan berikut berlaku:
Memandangkan kandungan div pertama dilukis sebelum latar belakang div kedua, teks nampaknya diletakkan di atas latar belakang hijau, mewujudkan ilusi yang div kedua sedang meluncur di antara mereka.
Menukar Gelagat
Walaupun susunan pengecatan lalai boleh membawa kepada situasi sedemikian, anda boleh mengubah suai tingkah laku dengan menetapkan kelegapan daripada elemen bertindih kepada nilai kurang daripada 1. Ini mencetuskan langkah pengecatan kelegapan sebelum langkah pengecatan kandungan, memastikan pertindihan latar belakang elemen muncul di bawah kandungannya.
Dalam contoh kami, menambahkan kelegapan: 0.9999 pada div kedua membawa kepada gelagat yang dijangkakan, di mana latar belakang hijau sepenuhnya meliputi kandungan div pertama.
Rujukan
Untuk penjelasan terperinci tentang pesanan cat CSS, rujuk kepada rasmi Dokumentasi W3C:
https://www.w3.org/TR/css-backgrounds-3/#box-painting
Atas ialah kandungan terperinci Mengapa Div Terpinggir Negatif Kelihatan Meluncur *Antara* Kandungan dan Latar Belakang Div Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!