Rumah >hujung hadapan web >tutorial css >Mengapakah `transform: rotate()` Membatalkan `z-index`?
Dalam CSS, menggunakan sifat transform boleh mencipta "konteks tindanan" baharu " pada elemen. Ini bermakna elemen dan anak-anaknya membentuk lapisan berasingan dalam proses pemaparan. Selain itu, elemen dengan nilai indeks z bukan lalai juga mencipta konteks tindanannya sendiri.
Dalam kod yang disediakan, elemen .test telah mengubah: rotate(10deg);, yang mewujudkan konteks tindanan. Kemudian, .test:after pseudo-element diberikan z-index: -1. Ini, bagaimanapun, tidak meletakkannya di belakang .test.
Z-index beroperasi dalam konteks tindanan. Dengan menetapkan -webkit-transform pada .test, ia mewujudkan konteks tindanan baharu untuk elemen dan anak-anaknya. Akibatnya, indeks-z: -1 pada .test:after hanya mempengaruhi kedudukannya dalam konteks tindanan .test.
Untuk menyelesaikan isu ini, pastikan kedua-dua .test dan .test:selepas berkongsi konteks susun yang sama. Satu cara untuk mencapai ini ialah dengan meletakkan .test dalam bekas pembalut dan memutarkan bekas itu.
Berikut ialah kod yang dikemas kini:
.wrapper { -webkit-transform: rotate(10deg); } .test { width: 150px; height: 40px; margin: 30px; line-height: 40px; position: relative; background: white; } .test:after { width: 100px; height: 35px; content: ""; position: absolute; top: 0; right: 2px; -webkit-box-shadow: 0 5px 5px #999; -webkit-transform: rotate(3deg); transform: rotate(3deg); z-index: -1; } <div class="wrapper"> <div class="test">z-index is canceled.</div> </div>
Dalam contoh ini , putaran transformasi digunakan pada bekas .wrapper, mewujudkan konteks tindanan tunggal untuk kedua-dua .test dan .test:after. Ini membolehkan z-index: -1 pada .test:after berkuat kuasa seperti yang dijangkakan.
Atas ialah kandungan terperinci Mengapakah `transform: rotate()` Membatalkan `z-index`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!